마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

어플 실행시 폰에서 중지되었습니다 뜹니다...

0 추천
'만들면서 배우는 AndEngine게임프로그래밍'이라는 도서의 소스구요, 
졸작을 위해서 책보고 짜고있는데 배경 출력 부터 막히네요 ...
 
package com.NinjaRunAndRun; 

import org.andengine.engine.camera.Camera; 
import org.andengine.engine.options.EngineOptions; 
import org.andengine.engine.options.ScreenOrientation; 
import org.andengine.engine.options.resolutionpolicy.FillResolutionPolicy; 
import org.andengine.entity.scene.Scene; 
import org.andengine.entity.util.FPSLogger; 
import org.andengine.extension.tmx.TMXLayer; 
import org.andengine.extension.tmx.TMXLoader; 
import org.andengine.extension.tmx.TMXLoader.ITMXTilePropertiesListener; 
import org.andengine.extension.tmx.TMXProperties; 
import org.andengine.extension.tmx.TMXTile; 
import org.andengine.extension.tmx.TMXTileProperty; 
import org.andengine.extension.tmx.TMXTiledMap; 
import org.andengine.extension.tmx.util.exception.TMXLoadException; 
import org.andengine.opengl.texture.TextureOptions; 
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; 
import org.andengine.ui.activity.SimpleBaseGameActivity; 
import org.andengine.util.debug.Debug; 

public class MainActivity extends SimpleBaseGameActivity { 
private Camera camera; 
private static final int CAMERA_WIDTH = 800; 
private static final int CAMERA_HEIGHT = 480; 

public Scene mScene; 
private TMXTiledMap mTMXTiledMap; 

@Override 
public EngineOptions onCreateEngineOptions() { 
camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
EngineOptions engineOptions = new EngineOptions(true, 
ScreenOrientation.LANDSCAPE_FIXED, new FillResolutionPolicy(), 
camera); 
return engineOptions; 


@Override 
protected void onCreateResources() { 
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); 


@Override 
protected Scene onCreateScene() { 
this.mEngine.registerUpdateHandler(new FPSLogger()); 

mScene = new Scene(); 

try { 
final TMXLoader tmxLoader = new TMXLoader(this.getAssets(), 
this.mEngine.getTextureManager(), 
TextureOptions.BILINEAR_PREMULTIPLYALPHA, 
this.getVertexBufferObjectManager(), 
new ITMXTilePropertiesListener() { 
@Override 
public void onTMXTileWithPropertiesCreated(final TMXTiledMap pTMXTiledMap, final TMXLayer pTMXLayer, final TMXTile pTMXTile, final TMXProperties<TMXTileProperty> pTMXTileProperties) { 

}); 

//타일맵 로드 
this.mTMXTiledMap = tmxLoader.loadFromAsset("tmx/back.tmx"); 

}catch (final TMXLoadException e) { 
Debug.e(e); 


final TMXLayer tmxLayer = this.mTMXTiledMap.getTMXLayers().get(0); 
mScene.attachChild(tmxLayer); 

return mScene; 


 
글 길이 때문에 LogCat은 필요하시다면 올리겠습니다
초보자라서 쉽게 가르쳐 주시면 감사하겠습니다!!!
 
익명사용자 님이 2014년 6월 4일 질문
로그캣과 오류난 부분만 올려주심 됩니다..로그캣이 필수입니다.
06-02 19:45:00.298: D/AndroidRuntime(29335): Shutting down VM
06-02 19:45:00.298: W/dalvikvm(29335): threadid=1: thread exiting with uncaught exception (group=0x4176cda0)
06-02 19:45:00.298: E/AndroidRuntime(29335): FATAL EXCEPTION: main
06-02 19:45:00.298: E/AndroidRuntime(29335): Process: com.example.ninjarunandrun, PID: 29335
06-02 19:45:00.298: E/AndroidRuntime(29335): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ninjarunandrun/com.example.ninjarunandrun.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.ninjarunandrun.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.ninjarunandrun-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.ninjarunandrun-2, /vendor/lib, /system/lib]]
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread.access$900(ActivityThread.java:161)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.os.Handler.dispatchMessage(Handler.java:102)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.os.Looper.loop(Looper.java:157)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread.main(ActivityThread.java:5356)
06-02 19:45:00.298: E/AndroidRuntime(29335): at java.lang.reflect.Method.invokeNative(Native Method)
06-02 19:45:00.298: E/AndroidRuntime(29335): at java.lang.reflect.Method.invoke(Method.java:515)
06-02 19:45:00.298: E/AndroidRuntime(29335): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
06-02 19:45:00.298: E/AndroidRuntime(29335): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
06-02 19:45:00.298: E/AndroidRuntime(29335): at dalvik.system.NativeStart.main(Native Method)
06-02 19:45:00.298: E/AndroidRuntime(29335): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.ninjarunandrun.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.ninjarunandrun-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.ninjarunandrun-2, /vendor/lib, /system/lib]]
06-02 19:45:00.298: E/AndroidRuntime(29335): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67)
06-02 19:45:00.298: E/AndroidRuntime(29335): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
06-02 19:45:00.298: E/AndroidRuntime(29335): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
06-02 19:45:00.298: E/AndroidRuntime(29335): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2222)
06-02 19:45:00.298: E/AndroidRuntime(29335): ... 11 more
06-02 19:50:00.368: I/Process(29335): Sending signal. PID: 29335 SIG: 9

어떤분이 W오류라고 쓰레드 뭐라고 하시는데...
그렇게 말씀주셔도 모르겠네요..
쉬운 답변 부탁드립니다 ...
제가 아직 andengine은 잘 몰라서 댓글로 남깁니다..혹시 패키지가 올바로 되있는게 맞나요~?

1개의 답변

+1 추천

패키지명 잘 못 쓰셨네요.

로그캣 보시면

java.lang.ClassNotFoundException: Didn't find class "com.example.ninjarunandrun.MainActivity" on path:

여기서 "MainActivity"를 찾을 수 없다고 나오는데, 보시면 패키지명을 포함한 풀네임이

"com.example.ninjarunandrun.MainActivity"죠?

 

그런데 소스코드의 패키지명 선언부를 보시면

package com.NinjaRunAndRun

으로 잘 못 되어있는걸 알 수 있네요.

 

프로젝트 작성하실 때 패키지명을 com.example.ninjarunandrun으로 하셨을텐데,

소스의 패키지를 com.NinjaRunAndRun라고 쓰셨으니 찾을 수가 없죠.

소스의 패키지 선언을 com.example.ninjarunandrun로 다시 바꾸시거나,

메니페스트 파일의 패키지 선언부를 사용하실 com.NinjaRunAndRun로 고치세요.

Jinthree (8,980 포인트) 님이 2014년 6월 4일 답변
헐감사합니다..................... 저도 같은 문제였는데 보니까 패키지 잘못썻네요.
...