Обновление SDK получил NoClassDefFoundError для ZXING

Как решить эту NoClassDefFoundError. Я интегрировал Zxing в свое приложение, все работает нормально. Затем я обновил свой плагин SDK и Eclipse, и когда я запускаю проект, журнал говорит

03-27 17:27:45.173: E/AndroidRuntime(8917): FATAL EXCEPTION: main
03-27 17:27:45.173: E/AndroidRuntime(8917): java.lang.ExceptionInInitializerError
03-27 17:27:45.173: E/AndroidRuntime(8917):     at java.lang.Class.newInstanceImpl(Native Method)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at java.lang.Class.newInstance(Class.java:1429)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.os.Looper.loop(Looper.java:123)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at android.app.ActivityThread.main(ActivityThread.java:4627)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at java.lang.reflect.Method.invokeNative(Native Method)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at java.lang.reflect.Method.invoke(Method.java:521)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-27 17:27:45.173: E/AndroidRuntime(8917):     at dalvik.system.NativeStart.main(Native Method)
03-27 17:27:45.173: E/AndroidRuntime(8917): Caused by: java.lang.NoClassDefFoundError: com.google.zxing.ResultMetadataType
03-27 17:27:45.173: E/AndroidRuntime(8917):     at records.model.CaptureActivity.<clinit>(CaptureActivity.java:94)`

Ответы на вопрос(10)

яйте его в качестве внешнего jar-файла в путь сборки java.

но я использовал новую сборку Gradle и Adroid Studio.

Для меня это решило выйти из Android Studio и выполнить очистку и сборку из командной строки, используя gradle:

gradle clean
gradle assembleDebug 

и исключение NoClassDefFound волшебным образом исчезло

Затем закажите core.jar на первую позицию и выберите его!

Вы должны очистить свой проект после операции. Проект -> чистый

Это решит проблему

 Markus Rudel23 авг. 2012 г., 09:41
Переупорядочивание наверх не было для меня необходимым. Мне просто нужно поставить галочку. Ах, это нужно сделать для библиотеки zxing и для вашего приложения.

что он говорит. Вы используете библиотечный код, который вы на самом деле не включили в свое приложение. Убедитесь, что содержимоеcore.jar из проекта являются частью вашего проекта, как проект библиотеки.

 Kishore27 мар. 2012 г., 14:56
Я добавил core.jar в папку активов и настроил его следующим образом: BuilPath -> config build -> Add jars
 Sean Owen27 мар. 2012 г., 15:18
Конечно, но вы не настроили включение классов в приложение!

борки в сгенерированный файл .apk.

Чтобы исправить это, создайте папку «libs» в корне вашего проекта (то есть: bin, src, assets, libs) и поместите туда файл core.jar. Удалите все остальные экземпляры из вашего пути сборки, и все должно работать нормально.

NoClassDefFoundError - Eclipse и Android

что вам нужно создать папку libs вCaptureClient Project, перейдите в core.jar, затем добавьте ссылку на core.jar.

Затем из вашего проекта, обратитесь к проекту CaptureClient.

Вау, это было в миллион раз сложнее, чем следовало бы!

https://stackoverflow.com/a/2248017/1173800

у меня была версия 18, но мне нужно было иметь инструменты сборки Android версии 19 или новее, потому что мне нужно, чтобы мой eclipse JDK соответствовал 1.7 вместо 1.6 как CORE.JAR с использованием Java версии 1.7.

Я также предложил бы просмотреть сообщения в консоли Android во время процесса сборки, это даст вам представление о точной проблеме.

com.google.zxing.ResultMetadataType вCaptureActivity.java онлайн94 но определение этого класса не может быть найдено (ClassDefNotFound). Если это не может быть найдено, то это не должно быть в вашем пути класса.

Возможно, на вашем диске есть файл .jar, который содержитcom.google.zxing.ResultMetadataType (по-видимомуcore.jar) поместите это в путь класса вашего проекта, чтобы решить эту проблему.

 Kishore27 мар. 2012 г., 15:26
да, если я открою, есть файл com.google.zxing.ResultMetadataType.class
 Andy Smith27 мар. 2012 г., 15:17
Можете ли вы подтвердить, что это соответствующий core.jar? Если вы откроете его в виде zip-файла, вы можете найтиcom.google.zxing.ResultMetadataType?
 Kishore27 мар. 2012 г., 15:00
Я добавил core.jar в папку активов и настроил
 Andy Smith27 мар. 2012 г., 15:28
Ах, вы выполнили шаги, описанные здесь:stackoverflow.com/a/2248017/180295 (конкретно 3-й и 4-й)

плагина.

Ответ Эндрюса ниже со ссылкойstackoverflow.com/a/2248017/180295 с пунктами 3 и 4 у меня сработало.

Решение Вопроса

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

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

 flypen30 июн. 2013 г., 07:05
Я столкнулся с той же проблемой после обновления Android SDK. И этот метод работает.
 Mohamed A.Karim30 окт. 2012 г., 19:44
@mwengler Спасибо за чистый совет, он работал только для меня, когда я делал чистку. @ Пока спасибо за полезный ответ, не могли бы вы упомянуть «Чистый» в ответе, потому что он работал только для меня с чистым!
 mwengler28 июл. 2012 г., 03:22
Это сработало для меня, как только я сделал проект> чистый. Если это работает для вас upvote, так что другие в беде найти его. (И в идеале @Kishore принял бы этот ответ.)

Ваш ответ на вопрос