Не удалось разрешить суперкласс действия
Я получаю эту ошибку в новом проекте на основе 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 выглядит следующим образом:
package com.example.basicgl10test;
import com.example.gl10gameadvlib.GL10GameActivity;
import com.example.gl10gameadvlib.Screen;
public class MainActivity extends GL10GameActivity {
Родительская активность подобна этому в другом пакете:
package com.example.gl10gameadvlib;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
public abstract class GL10GameActivity extends Activity {
Во время сборки ошибок нет. Я воссоздал новый проект, чистую + сборку тоже, все еще проблема сохраняется.
Я использую Eclipse IDE с эмулятором Android 4.0. Проблема остается с любым эмулятором или реальным устройством.
Спасибо
Souvik
Ответы
Ответ 1
Я столкнулся с этой проблемой сразу после GOOGLE IO 2013
когда я обновил плагин ADT, инструменты Android SDK до версии 22
и Android-платформы SDK для версии 17
Все мои проекты, которые ранее работали, начали бросать ClassNotFoundException после обновления без причины.
Затем я заметил, что есть новый Android-пакет под названием "Частные библиотеки Android", и после нескольких часов попыток я нашел способ исправить это.
Щелкните правой кнопкой мыши на своем проекте, затем
Перейти к Путь сборки- > Настроить путь сборки → Заказ и экспорт
когда вы там находитесь, вы должны проверить частные библиотеки Android и затем нажмите "ОК".
если вы все еще сталкиваетесь с проблемой, удалите все файлы внутри папки bin и перестройте проект.
Надеюсь, что это решит вашу проблему.
Ответ 2
Чтобы убедиться, что ваша банка фактически экспортирована при сборке, вы должны либо:
- поместите его в папку
libs
- или установите флажок, соответствующий вашему банку в свойствах проектa > путь сборки Java > вкладка "Заказ и экспорт"
Ответ 3
Если вы используете некоторые внешние библиотеки, за исключением ссылки на Eclipse, не забудьте поместить их в папку "libs" в приложении. Он должен быть рядом /src,/res и т.д. Просто /libs/yourLibrary.jar.
Он сообщит компилятору (не совсем), чтобы включить эту библиотеку в ваш APK.
Ответ 4
Собственно, библиотека, которую я импортирую, также является проектом Android, и я определил ее как библиотеку. В других проектах он работает одинаково.
Мой манифест выглядит так:
<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>
Ответ 5
У меня такая же проблема.
Я сделал следующее:
- Настроить путь сборки.
- Выберите вкладку "Заказ и экспорт",
- Выберите весь указанный путь или файл JAR.
- И попробуйте!
Удачи.