Sami
Sami

Reputation: 1389

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

Upvotes: 6

Views: 3991

Answers (2)

OneThreeSeven
OneThreeSeven

Reputation: 422

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.

Upvotes: 2

Christopher Orr
Christopher Orr

Reputation: 111555

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.

Upvotes: 8

Related Questions