2015-08-06 3 views
1

Я разрабатываю приложение для сканирования штрих-кода на Android по ZXing. Я следую за этим tutorial.NoClassDefFoundError: com.google.zxing.ResultMetadataType для zxing

Но когда я запустил мое приложение, NoClassDefFoundError получил и приложение закончило.

08-06 10:42:43.401: E/AndroidRuntime(10391): FATAL EXCEPTION: main 
08-06 10:42:43.401: E/AndroidRuntime(10391): Process: com.foxconn.cnsbg.it.barcodescanner, PID: 10391 
08-06 10:42:43.401: E/AndroidRuntime(10391): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/zxing/ResultMetadataType; 
08-06 10:42:43.401: E/AndroidRuntime(10391): at com.google.zxing.client.android.CaptureActivity.<clinit>(CaptureActivity.java:93) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.reflect.Constructor.newInstance(Native Method) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.Class.newInstance(Class.java:1572) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.Instrumentation.newActivity(Instrumentation.java:1065) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2246) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.ActivityThread.access$800(ActivityThread.java:149) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.os.Handler.dispatchMessage(Handler.java:102) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.os.Looper.loop(Looper.java:211) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at android.app.ActivityThread.main(ActivityThread.java:5333) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.reflect.Method.invoke(Native Method) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.reflect.Method.invoke(Method.java:372) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 
08-06 10:42:43.401: E/AndroidRuntime(10391): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.zxing.ResultMetadataType" on path: DexPathList[[zip file "/data/app/com.foxconn.cnsbg.it.barcodescanner-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
08-06 10:42:43.401: E/AndroidRuntime(10391): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
08-06 10:42:43.401: E/AndroidRuntime(10391): at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
08-06 10:42:43.401: E/AndroidRuntime(10391): ... 15 more 
08-06 10:42:43.401: E/AndroidRuntime(10391): Suppressed: java.lang.ClassNotFoundException: com.google.zxing.ResultMetadataType 
08-06 10:42:43.401: E/AndroidRuntime(10391):  at java.lang.Class.classForName(Native Method) 
08-06 10:42:43.401: E/AndroidRuntime(10391):  at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
08-06 10:42:43.401: E/AndroidRuntime(10391):  at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
08-06 10:42:43.401: E/AndroidRuntime(10391):  at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
08-06 10:42:43.401: E/AndroidRuntime(10391):  ... 16 more 
08-06 10:42:43.401: E/AndroidRuntime(10391): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Я искал вокруг Google и исправить свой путь сборки в CaptureActivity проекте как: enter image description here

, а также добавить ядро-2.2.jar в LIBS папки обоих проекта CaptureActivity и мой проект. Как мне исправить эту проблему?

+0

либо добавьте его в свой путь сборки, либо включите банку в библиотеки ... не для обоих, а для использования богиня студии – therealprashant

+0

Я исправил ваш совет, но все же получил это –

ответ

0

NoClassDefFoundError возникает, когда есть файл класса, от которого зависит ваш код, и он присутствует во время компиляции, но не найден во время выполнения.

Поскольку классы, присутствующие внутри core-2.2.jar, являются базой вашего приложения, для согласованности вы хотели бы добавить эту зависимость в свою папку lib, а не предоставлять ее внешне пути сборки.

Также проверьте различия в времени сборки и времени выполнения classpath. Быстрая проверка этого должна решить вашу проблему.

+0

Я поместил файл core-2.2.jar в папку libs вместо того, чтобы обеспечивать внешний путь сборки, а проблема не исправлена ​​:( –

+0

Выполняется ли ваш код вне Eclipse с помощью командной строки 'javac' &' java'? –

+0

Нет, я выполняю Run As/Android Application на Eclipse и запускаю приложение на мой Android-телефон –

2

Посмотрите на этот пост: Updating sdk got NoClassDefFoundError for zxing

Цитирование До

«Я не должен поставить банку-библиотеку активов или Lib (ов), но только поставить галочку для этого jar в свойствах -> путь сборки Java -> «Заказ и экспорт» (он был указан ранее, но не выбран)

Возможно, вам понадобится выполнить проект> очистить после этого, чтобы он вступил в силу! "

Это работает для меня!

Смежные вопросы