2012-04-04 12 views
6

Sto cercando di utilizzare twitter4j per la mia app per connettersi e postare su Twitter. Sto seguendo this tutorial. Ho scaricato il progetto di esempio da here e provo a eseguirlo su android 2.3.3. Sono sicuro di aver modificato il file Constants.java correttamente in base al sito web dello sviluppatore di Twitter. In TwitterUtils.java ho inserito anche OAUTH_TOKEN e OAUTH_TOKEN_SECRET anche. ma dopo l'esecuzione di esso, mi sono seguenti messaggi di errore: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) 

Non so se mi sbaglio, in Constant.java, non ho cambiato nulla nella

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; 

Ho provato a cambiare "callback" con "http://www.MyWebsite.com" Si prega di consulenza come posso correggere questi problemi.

+0

aggiorna il tuo annuncio su ADT 17? – MKJParekh

+0

intendevi il livello API? .... lo ho già aggiornato al livello API 17, per favore fatemi sapere se intendete qualcosa di diverso. Sono davvero nuovo per Android e Java. –

+3

allora qual è il nome della cartella della libreria. Deve essere 'libs' se lo hai tenuto lib, per favore cambialo in' libs' e poi controlla – MKJParekh

risposta

19

è necessario modificare il nome della cartella lib-libs come avete aggiornato ADT 17.

Acquista questo Article per a informazioni dettagliate su questo argomento.

+0

Grazie mille. Mi hai salvato la vita. lol – cmcromance

4

Nel caso in cui qualcuno stia utilizzando ADT 18, non avevo affatto una cartella di lib, stavo usando esclusivamente Progetto, Proprietà, Percorso di costruzione Java, Librerie. Per risolvere questo problema, ho creato una cartella libs all'interno del mio progetto, copiato i miei jar esterni in questa cartella e quindi rimosso i riferimenti nella scheda Librerie. Il progetto è stato ricostruito e lavorato!

Problemi correlati