【发布时间】:2012-04-21 21:41:38
【问题描述】:
我在尝试加载程序时收到“无法实例化活动”错误。让我感到困惑的一件事是完全相同的代码在我的旧 PC 上运行。我刚刚用新的 eclipse / android SDK / 等构建了一个新的。我有两台机器运行相同的代码,一台工作正常,另一台出现此错误。
有什么想法吗?
编辑: 我在堆栈中注意到的一件事是
原因:java.lang.ClassNotFoundException: com.voldaran.puzzle.graBLOX.PopActivity in loader dalvik.system.PathClassLoader[/data/app/com.voldaran.puzzle.graBLOX-2.apk]
它列出了 graBLOX-2.apk 。为什么使用'-2.apk'?
当我在工作机器上手动重现此错误时,它不会显示最后一个 [] 部分。
Android 清单
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".PopActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:finishOnTaskLaunch="true"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
堆栈
04-21 17:33:42.284: E/AndroidRuntime(4045): FATAL EXCEPTION: main
04-21 17:33:42.284: E/AndroidRuntime(4045): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.voldaran.puzzle.graBLOX/com.voldaran.puzzle.graBLOX.PopActivity}: java.lang.ClassNotFoundException: com.voldaran.puzzle.graBLOX.PopActivity in loader dalvik.system.PathClassLoader[/data/app/com.voldaran.puzzle.graBLOX-2.apk]
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.os.Handler.dispatchMessage(Handler.java:99)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.os.Looper.loop(Looper.java:130)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-21 17:33:42.284: E/AndroidRuntime(4045): at java.lang.reflect.Method.invokeNative(Native Method)
04-21 17:33:42.284: E/AndroidRuntime(4045): at java.lang.reflect.Method.invoke(Method.java:507)
04-21 17:33:42.284: E/AndroidRuntime(4045): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-21 17:33:42.284: E/AndroidRuntime(4045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-21 17:33:42.284: E/AndroidRuntime(4045): at dalvik.system.NativeStart.main(Native Method)
04-21 17:33:42.284: E/AndroidRuntime(4045): Caused by: java.lang.ClassNotFoundException: com.voldaran.puzzle.graBLOX.PopActivity in loader dalvik.system.PathClassLoader[/data/app/com.voldaran.puzzle.graBLOX-2.apk]
04-21 17:33:42.284: E/AndroidRuntime(4045): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
04-21 17:33:42.284: E/AndroidRuntime(4045): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
04-21 17:33:42.284: E/AndroidRuntime(4045): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-21 17:33:42.284: E/AndroidRuntime(4045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
【问题讨论】:
-
告诉我们更多关于您的两台 PC 设置的信息:1) 他们使用相同版本的 andriod sdk 吗? 2) 您是否确定其他一些 Android 项目可以在您的新机器上正常运行? 3)它只是普通的andriod项目还是取决于你的Android库项目? 4)它是否依赖于第 3 方库,它们在两台机器上是否相同? 5) 还要确保两台机器上的所有版本都相同:32 位或 64 位发行版。
-
它当前工作的机器运行的是旧版本的 eclipse 和 ADT(15.00) 。一旦我在旧机器上将 eclipse 和 ADT 更新到最新版本,它现在在两台机器上都不起作用。我能够在两台机器上运行一个非常简单的测试程序,但不是我的实际项目。一台机器是 64 位的,另一台是 32 位的。但考虑到它们现在都不起作用,我相信这是因为 Eclipse 或 ADT 的更新。虽然我不确定那会是什么。
-
我刚刚运行了一个测试,其中我删除了 manifest.xml 中的所有内容并将其替换为非常简单的工作项目,并将其指向一个愚蠢的活动,它仍然给出了这个错误。是否有一些配置不好的地方?我试过重建 .project 和 .classpath
-
好吧,一个建议是一点一点地启动和构建您的应用程序,并尝试查看导致问题的原因。希望它不是那么复杂,也不会花你那么长时间......
-
这正是我所做的,一块一块地构建。没有改变我能说的任何东西并且它起作用了。所以也许这与使用旧的 ADT 和 Eclipse 并将其引入新的有关。无论哪种方式,它现在都运行良好。感谢大家的帮助。
标签: java android eclipse manifest classnotfoundexception