0

所以我最近一直在开发一个在大多数设备上运行良好的应用程序。但是,有时应用程序在启动时会崩溃并出现以下错误:

java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{com.mypackage.app/com.mypackage.app.activities.MainPager}:
java.lang.ClassNotFoundException: com.mypackage.app.activities.MainPager
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1995)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
at android.app.ActivityThread.access$600(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:4787)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException:
com.mypackage.app.activities.MainPager
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1986)
... 12 more

我知道这是因为它找不到名为 MainPager 的类。但这怎么可能呢?我的意思是,课程应该在那里..我自己把它放在那里:)。为什么它没有找到它?

编辑:我认为原因可能是在我的清单中我已经android:package="com.mypackage.app"定义了,但是我的启动活动在 package 中com.mypackage.app.activities。目前正在测试这个理论。不过,这仍然很奇怪,它只发生在某些设备上。

此解决方案不起作用,因为我无法在 Google Play 中更新 APK(必须与清单中的包名称相同)。

4

3 回答 3

0

由于 ADT 更新到修订版 22(2013 年 5 月),您必须在项目 -> 属性 -> Java 构建路径 -> 在 Eclipse 中为您的旧项目选中“Android Private Libraries”复选框以消除此异常。 .

于 2013-11-14T09:40:46.687 回答
0

现在我在 Nexus 5 上使用 ART 运行时,并且我正在为某些应用程序获取 ClassNotFound。

如果您的用户属于这种情况,您可以放心地忽略这些。

于 2013-11-23T18:38:29.307 回答
0

在清单中添加这样的活动名称

android:name=".activities.MainPager"

因为你给了包名

android:package="com.mypackage.app"
于 2013-11-14T09:45:55.387 回答