我从我的制作应用程序收到崩溃报告,该报告告诉我其中一项活动存在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)
答案 0 :(得分:0)
1)将所有活动保持在同一个包下[比如com.compname.proj.views]。
2)确保在manifest中,package属性设置为上面的包[即com.compname.proj.views]。
3)在清单中,在所有活动标签下,确保android:name属性的值与下面的模式匹配:
android:name=".<your activity class name>"
Ex:android:name =“。SomeActivity”
我的观点是不要将包名+活动类名用于清单活动声明。