정확히 어디가 문제인지 모르겠습니다..
책에 있는 예제를 그대로 작성하였는데 계속해서 에러가 나서...
public class ImageEx extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SoundEx(this));
}
}
이 액티비이 측 호출하려는 부분이고 실제 코드는 밑 입니다..
public class SoundEx extends View{
MediaPlayer M_BackGround;
MediaPlayer M_Effect_1;
MediaPlayer M_Effect_2;
public SoundEx(Context context){
super(context);
M_BackGround = MediaPlayer.create(context, R.raw.background);
M_Effect_1 = MediaPlayer.create(context, R.raw.effect1);
M_Effect_2 = MediaPlayer.create(context, R.raw.effect2);
M_BackGround.start();
//쓰레드와 같이 스타트, 스탑으로 함.
setFocusable(true);
//따로 리턴값을 받아 재생하는 것이 아닌 이곳에 포커스를 맞추어 그대로 실행함.
}
protected void onDraw(Canvas canvas)
{
Paint P = new Paint();
P.setTextSize(20);
P.setColor(Color.WHITE);
String Str;
if(M_BackGround.isPlaying())
{
Str = "재생 중";
}
else
{
Str = "일시 정지";
}
canvas.drawText("현재 음악의 상태는 " + Str , 0, 20, P);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT)
{
M_Effect_1.start();
}
if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)
{
M_Effect_2.start();
}
if(keyCode == KeyEvent.KEYCODE_SPACE)
{
if(M_BackGround.isPlaying())
{
M_BackGround.pause();
}
else
{
M_BackGround.start();
}
invalidate();
}
return super.onKeyDown(keyCode, event);
}
}
더불어 해당 로그캣은 아래와 같습니다.
08-24 05:25:18.712: ERROR/AndroidRuntime(328): FATAL EXCEPTION: main
08-24 05:25:18.712: ERROR/AndroidRuntime(328): java.lang.RuntimeException: Unable to start activity ComponentInfo{GameStudy.A1/GameStudy.A1.ImageEx}: android.content.res.Resources$NotFoundException: File Hello World, GameStudy! from drawable resource ID #0x7f040000
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.os.Looper.loop(Looper.java:123)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at java.lang.reflect.Method.invokeNative(Native Method)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at java.lang.reflect.Method.invoke(Method.java:507)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at dalvik.system.NativeStart.main(Native Method)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): Caused by: android.content.res.Resources$NotFoundException: File Hello World, GameStudy! from drawable resource ID #0x7f040000
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.content.res.Resources.openRawResourceFd(Resources.java:860)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.media.MediaPlayer.create(MediaPlayer.java:662)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at GameStudy.A1.SoundEx.<init>(SoundEx.java:20)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at GameStudy.A1.ImageEx.onCreate(ImageEx.java:20)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): ... 11 more
08-24 05:25:18.712: ERROR/AndroidRuntime(328): Caused by: java.io.FileNotFoundException: Hello World, GameStudy!
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.content.res.AssetManager.openNonAssetFdNative(Native Method)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:427)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): at android.content.res.Resources.openRawResourceFd(Resources.java:857)
08-24 05:25:18.712: ERROR/AndroidRuntime(328): ... 16 more
정확히 어디가 문제인지.. 답을 좀 알려주세요...ㅠ.ㅠ;;;




/res/raw 폴더에 음악 파일들은 있나요?
혹시나 넣어주신 음악이미지가 지원하지 않는 이미지라던가, 네이밍규칙에 안맞을 수도 있으니, 공백, 대문자 없애보시고
다시 실행해 보십시요