2

我收到来自我的生产应用程序的崩溃报告,它告诉我我的一项活动存在 NoClassDefFound 异常。

在这一行抛出异常:

final Intent i = new Intent(MainActivity.this, SomeActivity.class);

它声称找不到“SomeActivity”类。

在成千上万的用户中只报告了一个实例。(在三星 Note Mini 上)这意味着它不应该是编译或包含错误的 lib 问题。

有什么线索可以让我继续调查吗?

p / s:活动在清单中明确定义。否则它甚至无法在其他用户的手机上使用。

堆:

java.lang.NoClassDefFoundError: com.sensored.SomeActivity
at com.sensored.MainActivity$2.onItemClicked(MainActivity.java:920)
at com.sensored.adapter.SomeListAdapter$2.onClick(SomeListAdapter.java:115)
at android.view.View.performClick(View.java:2485)
at android.view.View$PerformClick.run(View.java:9080)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

0

1) 将所有活动保存在同一个包下[比如 com.compname.proj.views]。

2) 确保在清单中,包属性设置为上述包[即 com.compname.proj.views]。

3)在清单中,在所有活动标签下,确保 android:name 属性具有与以下模式匹配的值:

        android:name=".<your activity class name>"

例如:android:name=".SomeActivity"

我的观点是不使用包名+活动类名进行清单活动声明。

于 2013-06-11T15:33:41.483 回答