Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AndEngine - Unable to instantiate Activity

I am new to Android development and facing a problem while using AndEngine. I am trying to run an empty application but getting a runtime error as follows:

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

The used 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>

I tried putting the whole package name instead of .TestAppActivity but without any luck. However when I extended TestAppActivity from Activity instead of BaseGameActivity it worked.

Any help is appreciated, Sami

like image 246
Sami Avatar asked Apr 01 '12 19:04

Sami


2 Answers

The error Unable to resolve superclass of Lcom/MyApps/TestApp/TestAppActivity and that it works when you inherit from Activity would suggest that you're not including the AndEngine library in your APK — therefore at runtime BaseGameActivity cannot be found.

Make sure the AndEngine dependency is in your libs directory in your Android project; not just added to your Eclipse classpath.

In fact, if you have the latest Android Eclipse plugin, any dependencies will be automatically included in your APK if you just place them in libs.

like image 120
Christopher Orr Avatar answered Oct 02 '22 21:10

Christopher Orr


I had a virtually indentical error message, and my problem was I had installed the wrong version of JDK, when I downloaded and installed JDK6 instead of 7 it worked fine. In case this will save anyone from going through the living nightmare i just experienced, I will leave this here.

like image 31
OneThreeSeven Avatar answered Oct 02 '22 20:10

OneThreeSeven