一些安卓设备遇到了 java.lang.NoClassDefFoundError 问题。

5

这是我在这里的第一个问题,希望不会被忽略。

应用程序在3个月前发布。一般来说,应用程序已在多个Android设备上进行了测试,并且工作正常,但某些客户遇到了崩溃问题。

堆栈跟踪:

java.lang.NoClassDefFoundError: com.lostnfound.mobile_app.Past_mapactivityinstance
at com.lostnfound.mobile_app.Past_map_fragm.onCreateView(Past_map_fragm.java:52)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:845)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1058)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1156)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:270)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
at android.app.Activity.setContentView(Activity.java:1862)
at com.lostnfound.mobile_app.Past_act.onCreate(Past_act.java:44)
at android.app.Activity.performCreate(Activity.java:4492)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

Past_map_fragm 代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ...
    final TabSpec tabSpec = tabHost.newTabSpec("map").setIndicator("Map")
            .setContent(new Intent(getActivity(), Past_mapactivityinstance.class));
    ...
}

我知道NoClassDefFoundError是一种非常普遍的错误。我无法理解为什么应用程序在大多数Android设备上都可以正常工作,但有些设备会遇到这个错误。

清单文件:

<uses-sdk android:minSdkVersion="7"
          android:targetSdkVersion="8" />

@NikitaBeloglazov和ajpolt:抱歉,你们读到这里时并没有输入完整的问题文本。 - Grigori A.
我之前遇到过类似的问题,当时在清单文件中引用了完整的包名。我将其修改为只保留类名,并在前面加上点号,例如com.somebody.app.someClass --> .someClass。这很奇怪,但好像不只我一个人遇到过这个问题。 - Simon
2
看起来你的应用程序中使用了地图。"Maps外部库不是标准Android库的一部分,因此它可能不存在于某些符合要求的Android设备上。" 你是否尝试将apk安装到没有Google Maps API的模拟器上,并查看是否会产生相同的错误? - ajpolt
@Simom 谢谢,但是在清单文件中我使用的是相对路径名(不是完整路径)。 - Grigori A.
@ajpolt 谢谢,这是一个好主意。我会尝试并在这里发布反馈。 - Grigori A.
1个回答

0
如果您能够发布更多的代码,或许可以提供更多的帮助。看起来您正在尝试使用Past_mapactivityinstance,但我在您发布的三行代码中没有看到它。我敢打赌,如果您在代码中搜索Past_mapactivityinstance并将其替换为Live_mapactivityinstance,您的应用程序会有不同的行为。

抱歉,我在输入问题时犯了一个错误。当然,在“Past_map_fragm”类的“onCreateView”方法中使用了“Past_mapactivityinstance.class”(问题文本已编辑)。这是应用程序在某些Android设备上遇到关键错误的行。如果需要,让我知道是否需要发布一些额外的代码。 - Grigori A.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接