我收到了一个已经在开发中并需要继续进行的项目。将其导入 Android Studio 并使用库和项目完成所有配置后,我编译它并在设备上运行它,但我总是一遍又一遍地遇到 NoClassDefFoundError。
过去两天我一直在进行在网络上找到的修复并密切关注库。
我目前有这个:
这是主要的 Android 项目:
这是 lib 项目之一 (zxing-android-minimal):
一旦我构建并将其部署到设备上,我就会遇到这个奇妙的错误:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.google.zxing.client.android.camera.CameraConfigurationManager
at pt.novabase.ocr.poc.camera.PhotoModule.onResumeAfterSuper(PhotoModule.java:152)
at pt.novabase.ocr.poc.CameraActivity.onResume(CameraActivity.java:109)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3832)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2231)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1789)
at android.app.ActivityThread.access$1500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
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:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
com.google.zxing.client.android.camera.CameraConfigurationManager
类位于 zxing 项目中。该项目仅包含在主项目中。
正如我在开始时提到的,我尝试了不同的配置以及在此类性质的其他问题上建议的库导入,但没有成功。因此,出于对失去另一天工作的绝望,我发布了这个问题。
感谢您对这场噩梦的帮助。
最佳答案
我已经发现发生了什么。 问题是,当我导入项目时,除了 zxing 项目之外,每个项目都被标记为库。部署时,它使用这些项目创建了应用程序,而我的主应用程序无权访问它。
我必须转到facets并检查xzing项目的is库模块(由于某种原因,android studio在导入时没有像其他项目一样将其识别为lib。
关于Android studio 和 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853231/