2012-04-01 3 views
6

Ich bin neu in der Android-Entwicklung und habe Probleme mit AndEngine. Ich versuche, eine leere Anwendung zu laufen, aber einen Laufzeitfehler erhalten, wie folgt:AndEngine - Aktivität kann nicht instanziiert werden

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 

Das verwendete Manifest:

<?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> 

ich statt .TestAppActivity aber ohne Glück das ganze Paket Namen versucht setzen. Wenn ich jedoch TestAppActivity von Aktivität anstelle von BaseGameActivity erweiterte, funktionierte es.

Jede Hilfe sehr geschätzt wird, Sami

Antwort

8

Der Fehler Unable to resolve superclass of Lcom/MyApps/TestApp/TestAppActivity und dass es funktioniert, wenn Sie von Activity erben würde vorschlagen, dass Sie die AndEngine Bibliothek in Ihrer APK ohne — daher zur Laufzeit BaseGameActivity kann nicht gefunden werden.

Stellen Sie sicher, dass sich die AndEngine-Abhängigkeit in Ihrem Verzeichnis libs in Ihrem Android-Projekt befindet; nicht nur zu Ihrem Eclipse-Klassenpfad hinzugefügt.

In der Tat, wenn Sie das neueste Android Eclipse-Plugin haben, werden alle Abhängigkeiten automatisch in Ihrem APK enthalten, wenn Sie sie einfach in libs platzieren.

+0

Vielen Dank. Problem gelöst. Ich habe es nur zum Klassenpfad hinzugefügt – Sami

+1

Nach der Aktualisierung von ADT auf die neueste Version entdeckte ich im selben Moment das gleiche Problem. Ich hatte andengine.jar im Lib-Ordner, hinzugefügt zu referenzierten Bibliotheken und es funktionierte so weit. Jetzt musste ich lib zu libs ändern. Müssen sie wirklich alle 5 Minuten ein neues SDK veröffentlichen? Können sie nicht EINE stabile Umgebung schaffen? – Yar

+3

Persönlich fand ich es viel einfacher, nur auf das AndEngine-Projekt zu verweisen, anstatt die .jar-Datei in das libs-Verzeichnis zu kopieren und einzufügen. Dies geschieht über Eigenschaften -> Android und referenzieren dann die AndEngine-Projekte als Bibliotheken. – Dan

2

Ich hatte eine praktisch identische Fehlermeldung, und mein Problem war, dass ich die falsche Version von JDK installiert hatte, als ich heruntergeladen und installiert JDK6 statt 7 es funktionierte gut. Falls dies jemanden davon abhalten wird, durch den lebenden Albtraum zu gehen, den ich gerade erlebt habe, werde ich das hier lassen.