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)
4

6 に答える 6

2

私は今解決策を見つけました。問題は、非常に古いバージョンの Twitter4j を使用しており、libs フォルダーに同じ名前の複数の jar があったことです。これらの問題を修正し、完全に機能するようになりました。

于 2012-06-02T05:37:13.687 に答える
1

プロジェクトのルート ディレクトリ内に libs という名前のフォルダーを作成し、その中に twitter4j jar を配置します。

次に、Project Properties -> Java Build Path -> Libraries -> Add Jars で新しい jar を含めます。

twitter4j jar への古い参照を削除します。

クリーンアップして起動します。

于 2012-05-26T06:22:27.483 に答える
1

twitter4jでも同じ問題があり、解決しました。フォルダーに「libs」という名前を付けた後、「libs」フォルダーをソースフォルダーとして使用して、その中のいくつかのメソッドにアクセスできるようにしました。その背後にある実際の化学は何なのだろうか!! それだけです、それは今私のために働いています。ソース フォルダーにするには、それを右クリックして [ビルド パス] に移動し、[ソース フォルダーとして使用] を選択します。

于 2012-05-30T22:22:26.877 に答える
0

Twitter4J を間違った方法でインポートしたことがわかりました。そこで、ビルド パスから削除し、twitter4j-core-4.0.2.jar を libs フォルダーにコピーしてから、Eclipse を再起動し、libs の jar をビルド パスに追加しました。その後、すべてがソートされました。

于 2014-12-18T08:21:18.957 に答える
0

古すぎることはわかっていますが、私のような人にとっては、プロジェクトにlog4j、slf4j、およびcommons-logging jarを含めることで問題が解決しました.twitter4jコアがそれらを使用しているためです。

于 2013-03-21T09:57:05.873 に答える