2012-04-04 1 views
4

Я создаю приложение, которое общается с Твиттером, чтобы опубликовать твит. Моя проблема заключается в том, что при компиляции моего кода, я получаю сообщение об ошибке:Android Twitter4j дает ошибку NoClassDefFoundError: twitter4j.TwitterFactory

NoClassDefFoundError: twitter4j.TwitterFactory 

Вот код, который Пост твит через onClickListener:

post.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Twitter twitter = new TwitterFactory().getInstance(); 
      AccessToken a = new AccessToken("****", "****"); 
      twitter.setOAuthConsumer("****", "****"); 
      twitter.setOAuthAccessToken(a); 
      try { 
       twitter.updateStatus("If you're reading this on Twitter, it worked!"); 
      } catch (TwitterException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

Вот что я получил в моем LogCat:

04-04 10:27:51.330: E/AndroidRuntime(12547): FATAL EXCEPTION: main 
04-04 10:27:51.330: E/AndroidRuntime(12547): java.lang.NoClassDefFoundError: twitter4j.TwitterFactory 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.bintuu.updater.TwitterClass$3.onClick(TwitterClass.java:107) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.view.View.performClick(View.java:2485) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.view.View$PerformClick.run(View.java:9080) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Handler.handleCallback(Handler.java:587) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Looper.loop(Looper.java:130) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at java.lang.reflect.Method.invoke(Method.java:507) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at dalvik.system.NativeStart.main(Native Method) 
+0

Вы добавили банку Twitter4j в свой класс? См .: http://www.vogella.de/articles/Eclipse/article.html#classpath_jar – elevine

+0

Да, у меня есть. Тем не менее, я все еще испытываю ту же проблему. Этот учебник предназначен для простой Java. Я использую андроиды java. – AndroidDev

+0

Его те же шаги для Android и простых Java-проектов. – elevine

ответ

2

Я нашел решение сейчас. Проблема заключалась в том, что я использовал очень старую версию Twitter4j, и в моей папке libs было несколько банок с одинаковыми именами. Теперь я исправил эти проблемы, и теперь он работает отлично.

1

Создайте папку с именем libs внутри корневой директории вашего проекта и вставьте в нее банку twitter4j.

Затем включить новую банку через Свойства проекта -> Путь сборки Java -> Библиотеки -> Добавить банки.

Удалить любую старую ссылку на банки twitter4j.

Чистота и запуск.

+0

Это все еще не помогает улучшить ситуацию. – AndroidDev

1

У меня была такая же проблема с twitter4j, и я решил это. Просто после того, как я назвал папку «libs», я сделал папку «libs» для использования в качестве исходной папки, так что некоторые методы внутри нее могут быть доступны. Интересно, какова реальная химия? но вот и все, теперь оно работает для меня. Чтобы сделать это исходной папкой, вы просто щелкните ее правой кнопкой мыши, перейдите к «пути сборки» и выберите «Использовать в качестве исходной папки».

0

Я знаю, что он слишком стар, но для таких, как я, проблема была решена путем включения в проект логарифмов log4j, slf4j и commons-logging, поскольку ядро ​​twitter4j использует их.

0

Я обнаружил, что я импортировал Twitter4J неправильным способом. Итак, что я сделал, это удалить его из моего пути сборки, а затем скопировать twitter4j-core-4.0.2.jar в папку libs, а затем перезапустить eclipse и добавить банку в мои библиотеки на мой путь сборки. После этого все было отсортировано.

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

  • Нет связанных вопросов^_^