我遇到了涉及ClassNotFoundException的问题。当我从eclipse“运行为Android应用程序”时,它可以正常工作,但是当我从Google Play下载它(相同的源代码但是“导出为已签名的应用程序”)时,它会崩溃并发生以下堆栈跟踪:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.larphoid.aeboing/com.larphoid.aeboing.BoingBoing}: java.lang.ClassNotFoundException: com.larphoid.aeboing.BoingBoing in loader dalvik.system.PathClassLoader[/data/app/com.larphoid.aeboing-1.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2703)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797)
at android.app.ActivityThread.access$2300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4914)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.larphoid.aeboing.BoingBoing in loader dalvik.system.PathClassLoader[/data/app/com.larphoid.aeboing-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.Instrumentation.newActivity(Instrumentation.java:1033)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695)
... 11 more
我之前从未遇到过这个问题,而且我在“阅读”Stacktraces方面还没有经验,所以我对此非常困惑。如果有人有一些指示或解决方案,我会很感激。
感谢。
答案 0 :(得分:4)
要从另一个问题中复制这个,因为我之前遇到了完全相同的问题,这就是我修复它的方法:
如果您正在运行adt rev 22,则可能无法导出库。我不知道为什么 谷歌确实做到了这一点,但在最新的革命中你必须这样做 检查以确保您自己导出图书馆。
右键单击您的项目,单击“属性”,然后选中“订购”和“订购”。出口 在Java Build Path下。如果要导出,它应该是这样的 一切:
然后,重建应用程序并再次导出它。它现在应该工作了。要进行测试,只需将.apk手动安装到手机上,然后再将其放入商店,以确保其正常工作。
答案 1 :(得分:1)
ClassNotFoundException
表示类路径中缺少某些内容。也许你错过了类路径中的库。
顾名思义,Java中的classNotFoundException是java.lang.Exception的子类,当Java虚拟机尝试加载特定类并且未在类路径中找到所请求的类时,它就会出现。
答案 2 :(得分:0)
也许你在签署apk时change
package name
。
查看您的package
和class name