2012-04-01 13 views
6

Soy nuevo en el desarrollo de Android y tengo un problema al usar AndEngine. Estoy tratando de ejecutar una aplicación vacía pero conseguir un error de ejecución de la siguiente manera:AndEngine: no se pudo crear una instancia de la actividad

04-01 21:56:16.326: W/dalvikvm(280): Unable to resolve superclass of Lcom/MyApps/TestApp/TestAppActivity; (31) 
04-01 21:56:16.326: W/dalvikvm(280): Link of class 'Lcom/MyApps/TestApp/TestAppActivity;' failed 
04-01 21:56:16.336: D/AndroidRuntime(280): Shutting down VM 
04-01 21:56:16.336: W/dalvikvm(280): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
04-01 21:56:16.376: E/AndroidRuntime(280): FATAL EXCEPTION: main 
04-01 21:56:16.376: E/AndroidRuntime(280): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.MyApps.TestApp/com.MyApps.TestApp.TestAppActivity}: java.lang.ClassNotFoundException: com.MyApps.TestApp.TestAppActivity in loader dalvik.system.PathClassLoader[/data/app/com.MyApps.TestApp-1.apk] 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.os.Looper.loop(Looper.java:123) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-01 21:56:16.376: E/AndroidRuntime(280): at java.lang.reflect.Method.invokeNative(Native Method) 
04-01 21:56:16.376: E/AndroidRuntime(280): at java.lang.reflect.Method.invoke(Method.java:521) 
04-01 21:56:16.376: E/AndroidRuntime(280): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-01 21:56:16.376: E/AndroidRuntime(280): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-01 21:56:16.376: E/AndroidRuntime(280): at dalvik.system.NativeStart.main(Native Method) 
04-01 21:56:16.376: E/AndroidRuntime(280): Caused by: java.lang.ClassNotFoundException: com.MyApps.TestApp.TestAppActivity in loader dalvik.system.PathClassLoader[/data/app/com.MyApps.TestApp-1.apk] 
04-01 21:56:16.376: E/AndroidRuntime(280): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
04-01 21:56:16.376: E/AndroidRuntime(280): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
04-01 21:56:16.376: E/AndroidRuntime(280): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
04-01 21:56:16.376: E/AndroidRuntime(280): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
04-01 21:56:16.376: E/AndroidRuntime(280): ... 11 more 

El evidentes usadas:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.MyApps.TestApp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="8" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".TestAppActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

He intentado poner todo el nombre del paquete en lugar de .TestAppActivity pero sin ninguna suerte. Sin embargo, cuando extendí TestAppActivity desde Activity en lugar de BaseGameActivity funcionó.

Cualquier ayuda se agradece, Sami

Respuesta

8

El error Unable to resolve superclass of Lcom/MyApps/TestApp/TestAppActivity y que funciona cuando se hereda de Activity sugeriría que usted no está incluida la biblioteca AndEngine en el APK — por lo tanto en tiempo de ejecución BaseGameActivity no puede ser encontrado.

Asegúrese de que la dependencia de AndEngine se encuentre en su directorio libs en su proyecto de Android; no solo agregado a su classpath Eclipse.

De hecho, si tiene el último complemento de Android Eclipse, las dependencias se incluirán automáticamente en su APK si simplemente las coloca en libs.

+0

Muchas gracias. Problema resuelto. Solo lo agregué a classpath – Sami

+1

Después de actualizar ADT a la versión más reciente en el momento en que descubrí el mismo problema. Tenía andengine.jar en la carpeta lib, agregué a las bibliotecas referenciadas y funcionó hasta ahora. Ahora, tuve que cambiar lib a libs. ¿Realmente tienen que lanzar un nuevo SDK cada 5 minutos? ¿No pueden crear UN ambiente estable? – Yar

+3

Personalmente, me resulta mucho más fácil simplemente hacer referencia al proyecto AndEngine en lugar de copiar y pegar el archivo .jar en el directorio libs. Esto se hace a través de Propiedades -> Android y luego hace referencia a los proyectos de AndEngine como bibliotecas. – Dan

2

Tuve un mensaje de error prácticamente idéntico, y mi problema era que había instalado la versión incorrecta de JDK, cuando descargué e instalé JDK6 en lugar de 7, funcionó bien. En caso de que esto salve a alguien de atravesar la pesadilla viviente que acabo de experimentar, lo dejaré aquí.

Cuestiones relacionadas