ClassNotFoundException quando a classe está lá?
Estou um pouco preso nisso. Android está jogando umClassNotFoundException
mesmo que haja tal classe.
<code>04-20 09:07:50.179: E/AndroidRuntime(525): FATAL EXCEPTION: main 04-20 09:07:50.179: E/AndroidRuntime(525): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.company.app/com.company.app.Main}: java.lang.ClassNotFoundException: com.company.app.Main 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread.access$600(ActivityThread.java:123) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.os.Handler.dispatchMessage(Handler.java:99) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.os.Looper.loop(Looper.java:137) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-20 09:07:50.179: E/AndroidRuntime(525): at java.lang.reflect.Method.invokeNative(Native Method) 04-20 09:07:50.179: E/AndroidRuntime(525): at java.lang.reflect.Method.invoke(Method.java:511) 04-20 09:07:50.179: E/AndroidRuntime(525): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-20 09:07:50.179: E/AndroidRuntime(525): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-20 09:07:50.179: E/AndroidRuntime(525): at dalvik.system.NativeStart.main(Native Method) 04-20 09:07:50.179: E/AndroidRuntime(525): Caused by: java.lang.ClassNotFoundException: com.company.app.Main 04-20 09:07:50.179: E/AndroidRuntime(525): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 04-20 09:07:50.179: E/AndroidRuntime(525): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 04-20 09:07:50.179: E/AndroidRuntime(525): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 04-20 09:07:50.179: E/AndroidRuntime(525): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871) 04-20 09:07:50.179: E/AndroidRuntime(525): ... 11 more </code>
Existe uma tal classe chamadaMain
emMain.java
.
public class Main extends FragmentActivity
que está no pacotecom.company.app
.
Estava funcionando antes, mas quando voltei a trabalhar no aplicativo hoje, ele simplesmente parou de funcionar. Eu não sei o que aconteceu.
Está definido corretamente no Manifesto.
<code><?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Light" > <activity android:label="@string/app_name" android:name=".Main" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> </code>
Algumas coisas que eu tentei:
Reiniciando o EclipseReiniciando o emuladorDesinstalando e reinstalando o aplicativo no emuladorLimpando o projeto.Verificar segen
esrc
está noSource
guia do caminho de construção.Como parece agora, posso ter que abandonar o projeto atual e começar do zero.
Qualquer ajuda seria muito apreciada.
ATUALIZAR:
O aplicativo funciona seMain
estendeActivity
ao invés deFragmentActivity
. Talvez seja algo com o pacote de suporte do Android?
ATUALIZAÇÃO 2:
Tenho certeza que sim. Quando não uso o pacote de suporte e uso o normalFragment
classes no Android 3.0 e acima, o aplicativo funciona bem.
O problema agora está corrigido. :)
Por algum motivo, o pacote de suporte do Android se removeu do/libs
diretório no projeto e estava fazendo referência a ele de um local externo (fora doworkspace
diretório).
Vou marcar a primeira resposta de Abdu Egal como correta, pois ele me dirigiu no caminho certo.