2012-04-04 5 views
6

Ich versuche, twitter4j für meine App zu verwenden, um eine Verbindung herzustellen und auf Twitter zu posten. Ich folge this tutorial. Ich habe das Beispielprojekt von here heruntergeladen und versuche es unter android 2.3.3. Ich bin sicher, dass ich Constants.java Datei entsprechend meiner Twitter-Entwicklerwebsite geändert habe. In TwitterUtils.java habe ich auch OAUTH_TOKEN und OAUTH_TOKEN_SECRET eingeben. aber nachdem es läuft, habe ich folgende Fehlermeldungen:twitter4j => AndroidRuntime (446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken

> E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.isAuthenticated 

>W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils; 

>D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010 

>D/dalvikvm(374): VFY: dead code 0x0012-002f in Lcom/ecs/android/sample/twitter/TwitterUtils;.isAuthenticated (Landroid/content/SharedPreferences;)Z 

>E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.sendTweet 

>W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils; 

>D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010 

>D/dalvikvm(374): VFY: dead code 0x0012-002b in Lcom/ecs/android/sample/twitter/TwitterUtils;.sendTweet (Landroid/content/SharedPreferences;Ljava/lang/String;)V 

>D/AndroidRuntime(374): Shutting down VM 

>W/dalvikvm(374): threadid=1: thread exiting with uncaught exception (group=0x40015560) 

>E/AndroidRuntime(374): FATAL EXCEPTION: main 

>E/AndroidRuntime(374): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken 

>E/AndroidRuntime(374):  at com.ecs.android.sample.twitter.TwitterUtils.isAuthenticated(TwitterUtils.java:18) 

>E/AndroidRuntime(374):  at com.ecs.android.sample.twitter.AndroidTwitterSample.updateLoginStatus(AndroidTwitterSample.java:72) 

>E/AndroidRuntime(374):  at com.ecs.android.sample.twitter.AndroidTwitterSample.onResume(AndroidTwitterSample.java:68) 

>E/AndroidRuntime(374):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150) 

>E/AndroidRuntime(374):  at android.app.Activity.performResume(Activity.java:3832) 

>E/AndroidRuntime(374):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110) 

>E/AndroidRuntime(374):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135) 

>E/AndroidRuntime(374):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668) 

>E/AndroidRuntime(374):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 

>E/AndroidRuntime(374):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 

>E/AndroidRuntime(374):  at android.os.Handler.dispatchMessage(Handler.java:99) 

>E/AndroidRuntime(374):  at android.os.Looper.loop(Looper.java:130) 

>E/AndroidRuntime(374):  at android.app.ActivityThread.main(ActivityThread.java:3683) 

>E/AndroidRuntime(374):  at java.lang.reflect.Method.invokeNative(Native Method) 

>E/AndroidRuntime(374):  at java.lang.reflect.Method.invoke(Method.java:507) 

>E/AndroidRuntime(374):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 

>E/AndroidRuntime(374):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 

>E/AndroidRuntime(374):  at dalvik.system.NativeStart.main(Native Method) 

bin nicht sicher, ob ich falsch bin, in Constant.java, ich habe nichts ändern in

public static final String REQUEST_URL = "https://api.twitter.com/oauth/request_token"; 

public static final String ACCESS_URL = "https://api.twitter.com/oauth/access_token"; 

public static final String AUTHORIZE_URL = "https://api.twitter.com/oauth/authorize"; 

public static final String OAUTH_CALLBACK_SCHEME = "x-oauthflow-twitter"; 

public static final String OAUTH_CALLBACK_HOST = "callback"; 

public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME + "://" + OAUTH_CALLBACK_HOST; 

Ich habe versucht, "callback" Wechsel mit "http://www.MyWebsite.com" Bitte beraten wie ich diese Probleme beheben kann.

+0

haben Sie Ihr ADT auf ADT 17 aktualisiert? – MKJParekh

+0

meinst du API-Ebene? .... Ich habe es bereits auf API Level 17 aktualisiert, bitte lass es mich wissen, wenn du etwas anderes meinst. Ich bin wirklich neu in Android und Java. –

+3

dann was ist dein Bibliotheksordnername..es muss "libs" sein, wenn du es behalten hast lib, ändere es bitte in 'libs' und überprüfe dann – MKJParekh

Antwort

19

Sie müssen lib-libs Ordnernamen ändern, wie Sie ADT aktualisiert 17.

Kasse diese Article für im Detail Informationen zu diesem Thema.

+0

Vielen Dank. Du hast mein Leben gerettet. lol – cmcromance

4

Wenn jemand ADT 18 verwendet, hatte ich überhaupt keinen lib-Ordner, ich benutzte ausschließlich den Tab Projekt, Eigenschaften, Java-Build-Pfad, Bibliotheken. Um dieses Problem zu beheben, habe ich einen libs-Ordner in meinem Projekt erstellt, meine externen JAR-Dateien in diesen Ordner kopiert und anschließend die Referenzen auf der Registerkarte "Bibliotheken" entfernt. Das Projekt hat umgebaut und gearbeitet!

Verwandte Themen