Android 应用程序正在崩溃Java.lang.NoClassDefFoundError:com.abhi.barcode.frag.libv2.R$string
您好,我遇到了一些问题,这让我痛苦了一周。当我打开片段QRcode读取器时,应用程序是基于片段构建的。只要我切换到另一个并再次切换,它就会正常工作,然后出现错误。我想onDestroy和onCreateView方法可能有问题Android 应用程序正在崩溃Java.lang.NoClassDefFoundError:com.abhi.barcode.frag.libv2.R$string,android,Android,您好,我遇到了一些问题,这让我痛苦了一周。当我打开片段QRcode读取器时,应用程序是基于片段构建的。只要我切换到另一个并再次切换,它就会正常工作,然后出现错误。我想onDestroy和onCreateView方法可能有问题 FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.abhi.barcode.frag.libv2.R$string at com.abhi.barcode.frag.libv2.Barcode
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.abhi.barcode.frag.libv2.R$string
at com.abhi.barcode.frag.libv2.BarcodeFragment.displayFrameworkBugMessageAndExit(BarcodeFragment.java:345)
at com.abhi.barcode.frag.libv2.BarcodeFragment.initCamera(BarcodeFragment.java:338)
at com.abhi.barcode.frag.libv2.BarcodeFragment.surfaceCreated(BarcodeFragment.java:212)
at android.view.SurfaceView.updateWindow(SurfaceView.java:559)
at android.view.SurfaceView.access$000(SurfaceView.java:82)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:172)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:671)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1822)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1002)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4216)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:736)
at android.view.Choreographer.doCallbacks(Choreographer.java:566)
at android.view.Choreographer.doFrame(Choreographer.java:536)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:722)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view= inflater.inflate(R.layout.fragment_qr, container, false);
}catch (InflateException e) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
Fragment f = getChildFragmentManager().findFragmentById(R.id.qr_scan_fragment);
if (f != null) {
getActivity().getSupportFragmentManager().beginTransaction()
.remove(f)
.commit();
}
}
NoClassDefFoundError通常意味着您在编译时在类路径中有该类,但在运行时该类现在从类路径中丢失(因为它只是丢失了,或者因为您有不同的版本,如注释中正确说明的) 这是一个maven项目吗?如果是这样的话,可能您有一个声明为
提供的依赖项
或类似的东西,并且您在运行时缺少库
如果没有,您如何构建和运行代码?从IDE运行时是否存在相同的错误
然而,根本原因很可能是我上面提到的。这是因为90%的jar丢失或项目绑定错误。请检查项目的首选项,也许您需要做更多的工作。请查看您正在使用的库的文档,一定有说明如何正确绑定库的内容
例如,我不得不在project.properties文件中添加一些行,这恰好是我遇到的崩溃,解决方案非常简单。我只需将所需的权限和功能添加到清单中,即:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
如果您给我们一个代码片段,比如BarcodeFragment的第345行,可能有人可以帮助您。看起来像是jar
版本不匹配。检查类路径中JAR的版本。是的,它是一个用于读取二维码的库