2012-05-30 3 views
2

Симптом: Я использую проект, который я вытащил из хранилища git создателя. Я включил их библиотеки, как показано в папке libs. Проект не имеет ошибок, проект компилируется. Но когда он обращается к объекту, который должен находиться в банке, он сбой.NoClassDefFoundError, что здесь отсутствует? (изображение прилагается)

Я сделал несколько других предложений, которые я прочитал здесь. Я кое-что прочитал об изменении classpath, где это?

Кроме того, код SRC для кувшина показывает объект в вопросе, как на самом деле существующий ....

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

05-30 11:26:16.878: E/AndroidRuntime(11098): FATAL EXCEPTION: main 
05-30 11:26:16.878: E/AndroidRuntime(11098): java.lang.NoClassDefFoundError:  twitter4j.conf.ConfigurationBuilder 
05-30 11:26:16.878: E/AndroidRuntime(11098): at com.pigmal.android.ex.twitter4j.TwitterApp.askOAuth(TwitterApp.java:110) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at com.pigmal.android.ex.twitter4j.TwitterApp.onClick(TwitterApp.java:144) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at android.view.View.performClick(View.java:2482) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at android.view.View$PerformClick.run(View.java:9077) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at android.os.Handler.handleCallback(Handler.java:587) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at a ndroid.os.Handler.dispatchMessage(Handler.java:92) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at android.os.Looper.loop(Looper.java:130) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at android.app.ActivityThread.main(ActivityThread.java:3683) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at java.lang.reflect.Method.invokeNative(Native Method) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at java.lang.reflect.Method.invoke(Method.java:507) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-30 11:26:16.878: E/AndroidRuntime(11098): at dalvik.system.NativeStart.main(Native Method) 

Это мой полный проект установки. Тот факт, что это использование Android, вероятно, не имеет значения здесь, я не хочу, чтобы оттолкнуть эксперт Java помечая это Android

http://i46.tinypic.com/2s0lj5y.png

+0

1) Высказывание "Android" не отталкивать "экспертов Java";) 2) интегрированной среды «Java Build Path «* - это время компиляции и время выполнения« CLASSPATH ». В: Что такое «объект, о котором идет речь»? В: Не могли бы вы высказать * точную ошибку *? – paulsm4

+0

@ paulsm4 Обычно я не помещаю сообщения в андроид с Java, поэтому некоторые java-ребята могут не видеть вопросов, связанных с Android. Я обновил точную ошибку – CQM

+0

Как вы запускаете приложение (командная строка, затмение и т. Д.)? Какие аргументы переданы? – cklab

ответ

4

Это решил для меня http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

What I did to fix the bug was : 

Remove the libraries from the standard Java build path : 
Right click on the project name > Properties > Java Build Path > tab Libraries > remove  everything except the “Android X.X” (2.3.3 in my case) and the “Android Dependencies” 
Rename the libraries folder from “lib” to “libs” 
By doing that, all the libraries in the folder “libs” are found by the Android plugin and are added to the “Android Dependencies” item of the project 
Restart Eclipse 
Android Dependencies should be created. Running the app won't produce NoClassDefFoundError anymore 

с исключением, что я должен был перезагружать ECLIPSE после выполнения этих инструкций, вместо того, чтобы просто чистка проекта впоследствии.

0

Я думаю, вам лучше теги андроид и на этот вопрос. Я видел людей на более ранних постах, имеющих похожие проблемы, даже из-за версии ADT. В идеале, поскольку вы разместили свой код внутри папки libs, вы сможете получить все эти классы. Но это, кажется, некоторая проблема времени выполнения, а не время компиляции.

Также это характерно для Android.


Вы вручную добавили банку в classpath? Обычно, когда баночка добавляется в папку libs, она начинает отображаться внутри Android Dependencies и не непосредственно, как показано в снимке.

2

Попробуйте это, это сработало от меня.

  1. Перейдите на Путь сборки, удалите библиотеки twitter4j и сделайте ОК.

  2. Перейдите на Путь сборки, выберите Добавить внешние библиотеки, затем перейдите в папку проекта, которую вы загрузили из github, затем перейдите в папку lib, вы найдете там файлы twitter4j, выберите twitter4j-core только (но только и только в том случае, если он все еще не работает, это также поток twitter4j, пока он не сохранит только ядро) и сделайте ОК.

+0

Хороший совет! CQM - Eclipse "путь сборки" == Java "classpath". К сожалению, существуют два разных пути пути/пути: 1) время компиляции и 2) время выполнения. Ваша проблема в том, что путь к классам времени выполнения не собирает .jar, который имеет класс «twitter4j.conf.ConfigurationBuilder». Вы должны добавить .jars как «Внешние библиотеки». – paulsm4

+0

Это, кажется, возвращает меня к квадрату. Нет ошибок, он компилируется, но при запуске приложения он сбой «NoClassDefFoundError» при обращении к методу. Какой проект вы использовали, что twitter4j-core был единственным, что вам нужно? – CQM

1

У меня была та же проблема, удаляя все библиотеки щебета из пути сборки и переименования Lib папку LIBS решить эту проблему для меня

0

Для меня переименовать папку, и перезагрузка не решает проблему. Но, внутри a pages with links posted in a previous comment, есть ответ тот, кто решил мою проблему. Этот ответ говорит:

If you have references to jars that are not in the ‘libs’ folder, for example if you use ‘classpath variable’, you can resolve the NoClassDefFoundError issue with the new ADT 17 by exporting the references. To export the references: simply go to “Properties > Java Build Path > Order and Export”, and check all the references you want exported.

И я должен двигаться твиттер банку перед тем папке Src

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