2012-04-04 23 views
4

私はつぶやきを投稿するためにTwitterと通信アプリを作っています。アンドロイドTwitter4j与えるエラーのNoClassDefFoundError:twitter4j.TwitterFactory

ここ
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で得たものである:ここでは

NoClassDefFoundError: twitter4j.TwitterFactory 

がonClickListener経由つぶやきだ投稿コードです:私の問題は私のコードをコンパイルするとき、私はエラーメッセージを取得することです。

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 jarを追加しましたか?参照:http://www.vogella.de/articles/Eclipse/article.html#classpath_jar – elevine

+0

はい、あります。それほど、私はまだ同じ問題を経験しています。そのチュートリアルでは、プレーンなJavaを目指しています。私はアンドロイドのJavaを使用しています。 – AndroidDev

+0

AndroidとプレーンなJavaプロジェクトでは同じ手順です。 – elevine

答えて

2

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

1

プロジェクトのルートディレクトリ内にlibsという名前のフォルダを作成し、twitter4j jarを内部に配置します。 > Javaのビルド・パス - - > ライブラリ - > JARの追加を

は、プロジェクトのプロパティを経由して新しいjarファイルが含まれています。

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

清掃して起動します。

+0

これはまだ状況を改善するのに役立ちません。 – AndroidDev

1

私はtwitter4jと同じ問題を抱えていました。私はそれを解決しました。単に "libs"にフォルダを命名した後、 "libs"フォルダをソースフォルダとして使用し、その中のいくつかのメソッドにアクセスできるようにしました。私はそれの後ろの実際の化学が何であるか疑問に思います!しかしそれはそれです、それは今私のために働いています。ソースフォルダにするには、右クリックして "ビルドパス"に移動し、 "ソースフォルダとして使用"を選択します。

0

は、私はそれがあまりにも古いです知っているが、私のような人のため - 問題はtwitter4jコアがそれらを使用するため、プロジェクトでのlog4j、SLF4Jとコモンズ・ログのjarファイルを含めることにより解決しました。

0

私は、Twitter4Jを不正な方法でインポートしたことがわかりました。そこで私が進めたことは、ビルドパスからそれを削除し、twitter4j-core-4.0.2.jarをlibsフォルダにコピーし、Eclipseを再起動して、自分のビルドパスにlibを追加することでした。すべてがその後分類された。

関連する問題