11

I am getting this error on a new project based on OpenGL ES 10:

  09-03 12:44:07.870: W/dalvikvm(599): Unable to resolve superclass of Lcom/example/basicgl10test/MainActivity; (416)
  09-03 12:44:07.870: W/dalvikvm(599): Link of class 'Lcom/example/basicgl10test/MainActivity;' failed
  09-03 12:44:07.870: D/AndroidRuntime(599): Shutting down VM
  09-03 12:44:07.910: W/dalvikvm(599): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
  09-03 12:44:07.920: I/dalvikvm(599): Wrote stack traces to '/data/anr/traces.txt'
  09-03 12:44:07.980: E/AndroidRuntime(599): FATAL EXCEPTION: main
  09-03 12:44:07.980: E/AndroidRuntime(599): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.basicgl10test/com.example.basicgl10test.MainActivity}: java.lang.ClassNotFoundException: com.example.basicgl10test.MainActivity
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.os.Handler.dispatchMessage(Handler.java:99)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.os.Looper.loop(Looper.java:137)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.main(ActivityThread.java:4424)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.reflect.Method.invokeNative(Native Method)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.reflect.Method.invoke(Method.java:511)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at dalvik.system.NativeStart.main(Native Method)
  09-03 12:44:07.980: E/AndroidRuntime(599): Caused by: java.lang.ClassNotFoundException: com.example.basicgl10test.MainActivity
  09-03 12:44:07.980: E/AndroidRuntime(599):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
  09-03 12:44:07.980: E/AndroidRuntime(599):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
  09-03 12:44:07.980: E/AndroidRuntime(599):    ... 11 more
  09-03 12:44:08.061: W/ActivityManager(92):   Force finishing activity com.example.basicgl10test/.MainActivity

My Activity Class is like this:

  package com.example.basicgl10test;
  import com.example.gl10gameadvlib.GL10GameActivity;
  import com.example.gl10gameadvlib.Screen;
  public class MainActivity extends GL10GameActivity {

The parent activity is like this in another package:

  package com.example.gl10gameadvlib;
  import javax.microedition.khronos.egl.EGLConfig;
  import javax.microedition.khronos.opengles.GL10;
  public abstract class GL10GameActivity extends Activity {

There are no errors during build. I have recreated a fresh project, clean+build also, still the issue persists.

I am using Eclipse IDE with Android 4.0 Emulator. Issue stays with any emulator or real device.

Thanks Souvik

Souvik Basu
  • 289
  • 2
  • 6
  • 14

5 Answers5

63

I faced this issue Right after GOOGLE IO 2013 when i updated my ADT plugin, Android SDK tools to Revision 22 and Android SDK platform-tools to revision 17

All of my projects that previously worked started throwing ClassNotFoundException after the update for no reason. Then i noticed that there is a new Android Package named as Android Private Libraries and after hours of trying i found a way to fix this.

Right Click on your Project then

Goto Build Path-> Configure Build Path -> Order and Export

when you are there you should check the Android Private Libraries and then click OK.

if you still face the problem delete all the files inside your bin folder and rebuilt you project.

Hope this solves your issue

Sheraz Ahmad Khilji
  • 8,300
  • 9
  • 52
  • 84
3

To make sure your jar is actually exported at build, you should either:

  • put it in the libs folder
  • or fill the checkbox corresponding to your jar in project properties > Java build path > Order and export tab
sdabet
  • 18,360
  • 11
  • 89
  • 158
0

If you are using some external libraries, except linking it inside Eclipse, don't forget to put them in "libs" folder in the application. It should be near /src, /res and etc. Just /libs/yourLibrary.jar.

It will tell the compiler(not exactly) to include this library to your APK.

AlexN
  • 2,544
  • 16
  • 13
0

Actually, the library I am importing is also an Android project and I have defined it as a library. In other projects, it is working the same way.

My manifest is as under:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.basicgl10test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

    <!-- Only Single Touch and OpenGLES less than 2.0 versions used by default -->
    <!-- We will use both multi and single touch handlers by using a class based SDK Version qualifier -->
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

</manifest>
Souvik Basu
  • 289
  • 2
  • 6
  • 14
0

I have the same issue. What I've done is:

  1. Configure Build Path.
  2. Choose Order and Export Tab,
  3. Select all the listed path or JAR file.
  4. And Try it!

Good Luck.

Fedy Venom
  • 399
  • 4
  • 11