twitter4j => AndroidRuntime(446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken
Je suis en train d'utiliser twitter4j pour mon application pour se connecter et poster sur twitter. Je suis ce tutoriel. J'ai téléchargé l'exemple de projet à partir de ici et d'essayer de l'exécuter sur android 2.3.3
. Je suis sûr que j'ai modifié Constants.java
fichier correctement selon mon twitter développeur de site web. Dans TwitterUtils.java
j'ai entrez OAUTH_TOKEN
et OAUTH_TOKEN_SECRET
aussi. mais, après l'exécuter, j'ai eu des messages d'erreur suivants :
> 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)
ne sais pas si je suis dans l'erreur, dans Constant.java je n'ai rien changé à
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;
J'ai essayé de changer "callback"
avec "http://www.MyWebsite.com"
S'il vous plaît conseils comment puis-je corriger ces problèmes.
- avez-vous des mises à jour de votre adt ADT 17?
- vouliez-vous dire de l'API de niveau? .... je l'ai mise à jour de l'API de niveau 17 déjà, s'il vous plaît laissez-moi savoir si vous voulez parler d'autre chose. Je suis vraiment nouveau pour android et java.
- alors qu'est-ce que votre dossier de bibliothèque de nom..il doit être
libs
si vous avez gardé lib veuillez modifier pourlibs
et de vérifier ensuite - hey, aujourd'hui, ses activités!!! je vous remercie beaucoup de Frankenstein. Je ne peux pas croire que j'ai passé presque 2 jours pour ces petites questions. vous me sauver. Merci.
- ok..causer u ne savais pas..maintenant vous le savez 🙂
- Pouvez-vous nous éclairer sur comment changer de compte twitter? et je ne vois pas de twitter page d'autorisation de pop-up, est-ce normal? j'ai essayé d'Effacer les informations d'Identification", je suis toujours connecté.
- Je suggère de demander à ce que la Question ou la mise à jour de la Question ci-dessus..et écrire votre problème en détail..
- Et les tiens aussi à vous dire,autant que je sache, il n'existe aucun moyen..vous sera déconnecté de twitter à l'aide de Twitter4j vous venez de supprimer la SharedPreference qui a stocké auth_token lorsque vous appuyez sur les bouton de Déconnexion
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer le nom de votre Dossier de
lib
àlibs
que vous avez mis à jour ADT 17.Caisse L'Article pour de l'information détaillée sur ce sujet.
Au cas où quelqu'un est à l'aide de l'outil ADT 18 ans, je n'ai pas de dossier lib à tous, j'ai été en utilisant du Projet, Propriétés, Java Build Path, onglet Bibliothèques exclusivement. Pour résoudre ce problème, j'ai créé un dossier libs dans mon projet, copié mon externes bocaux à ce dossier, puis supprimé les références dans l'onglet Bibliothèques. Le projet reconstruit et travaillé!