android - example - twitter4j javadoc
twitter4j=> AndroidRuntime(446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken (2)
Intento utilizar twitter4j para que mi aplicación se conecte y publique en Twitter. Estoy siguiendo este tutorial . He descargado el proyecto de ejemplo desde aquí y trato de ejecutarlo en android 2.3.3
. Estoy seguro de que he modificado el archivo Constants.java
correctamente de acuerdo con mi sitio web de desarrolladores de Twitter. En TwitterUtils.java
tengo entrar OAUTH_TOKEN
y OAUTH_TOKEN_SECRET
también. pero después de ejecutarlo, recibí los siguientes mensajes de error:
> 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)
no estoy seguro si estoy equivocado, en Constant.java, no he cambiado nada en
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;
He intentado cambiar la "callback"
por "http://www.MyWebsite.com"
Consulte cómo puedo corregir estos problemas.
Debe cambiar el nombre de su carpeta de lib
a libs
medida que haya actualizado ADT 17.
Consulte este artículo para obtener información detallada sobre este tema.
En caso de que alguien esté usando ADT 18, no tenía una carpeta lib, estaba usando Project, Properties, Java Build Path, pestaña Libraries exclusivamente. Para resolver este problema, creé una carpeta libs dentro de mi proyecto, copié mis archivos jar externos a esta carpeta y luego eliminé las referencias en la pestaña Bibliotecas. ¡El proyecto reconstruido y trabajado!