現在 eclipceADTにて、androidの開発を行っています。
今回、質問したのは本サイトの「androidの館」で、紹介されているゲームの基本骨格を利用して、
自分で用意した画像を表示しようとしたのですが、うまくいきません。
エラーは表示されませんが、実行時に、エミュレーター内でエラーが出てしまいます。
内容は、「unfortunately has stopped 」です。
また、LogCatで調べたところ、実行時に
error opening trace file: No such file or directory (2)
FATAL EXCEPTION: main
と表示されています。
色々調べてみたところ
Resources res = context.getResources();
ここが原因のようです。(この位置を消すと起動する)
しかし、問題が見当たらず、行き詰まってしまいました。
どこを修正すれば良いのでしょうか?
以下、ソースです。
GameMgr.java
package com.example.test;
import java.util.LinkedList;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
@SuppressLint("WrongCall")
public class GameMgr
{
private LinkedList<Task> _taskList = new LinkedList<Task>();//タスクリスト
GameMgr(Context context)
{
_taskList.add(new Title(context));
}
public boolean onUpdate()
{
for( int i=0 ; i<_taskList.size() ; i++ )
{
if( _taskList.get(i).onUpdate() == false)//更新失敗
{
_taskList.remove(i);//タスクの排除
i--;
}
}
return true;
}
public void onDraw(Canvas cnvs)
{
cnvs.drawColor(Color.WHITE);
for( int i=0 ; i<_taskList.size() ; i++ )
{
_taskList.get(i).onDraw(cnvs);//描画
}
}
}
package com.example.test;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
public class Title extends Task
{
private Context context;
public Title(Context context)
{
this.context = context;
}
Paint paint = new Paint();
Resources res = context.getResources();//ここの位置で問題が発生
Bitmap title_img = BitmapFactory.decodeResource(res, R.drawable.enemy_2);
@Override
public void onDraw(Canvas cnvs)
{
cnvs.drawBitmap(title_img, 110, 110, paint );
}
}
継承の順番は、
MainActivity
↓
GameSurface
↓
GameMgr
↓
Title
となっています。