Вопрос по twitter4j, android – Android Twitter4j выдает ошибку NoClassDefFoundError: twitter4j.TwitterFactory

4

Я делаю приложение, которое общается с Twitter, чтобы опубликовать твит. Моя проблема в том, что при компиляции моего кода я получаю сообщение об ошибке:

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)
Можете ли вы предоставить более подробную информацию об этой ошибке? Есть ли в нем трассировка стека? Можете ли вы быть более конкретным, чем говорить, что это происходит при компиляции кода? Eclipse подчеркивает его красным и выдает эту ошибку, или это происходит во время работы приложения? elevine
Вы добавили банку Twitter4j в ваш путь к классам? Увидеть:vogella.de/articles/Eclipse/article.html#classpath_jar elevine
Это те же самые шаги для проектов Android и простого Java. elevine
Да, у меня есть. Тем не менее, я все еще испытываю ту же проблему. Этот учебник нацелен на простую Java. Я использую Android Java. AndroidDev
Да, я это подтвердил, но все равно получаю ту же ошибку. AndroidDev

Ваш Ответ

5   ответов
1

спроектируйте и поместите банку twitter4j внутрь.

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

Удалите все старые ссылки на твиттеры jar4.

Очистить и запустить.

Error: User Rate Limit Exceeded AndroidDev
0

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

1

и я ее решил. Просто после присвоения имени папке «libs», я создал «libs». папка, которая будет использоваться в качестве исходной папки, так что некоторые методы внутри могут быть доступны. Интересно, какова реальная химия позади этого !! но это все, теперь это работает для меня. Чтобы сделать его исходной папкой, просто щелкните ее правой кнопкой мыши и перейдите в раздел «путь сборки». а затем выберите & quot; Использовать как исходную папку & quot ;.

2

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

4

lib & quot; имя папки для "libs". Это решило аналогичную проблему для меня, проверьте здесь:https://github.com/ddewaele/AndroidTwitterSample/issues/2

Error: User Rate Limit Exceeded AndroidDev

Похожие вопросы