2012-04-04 14 views
6

मैं अपने ऐप के लिए जुड़ने और ट्विटर पर पोस्ट करने के लिए twitter4j का उपयोग करने की कोशिश कर रहा हूं। मैं this tutorial का पालन कर रहा हूं। मैंने here से उदाहरण प्रोजेक्ट डाउनलोड किया है और इसे android 2.3.3 पर चलाने का प्रयास करें। मुझे यकीन है कि मैंने अपनी ट्विटर डेवलपर वेबसाइट के अनुसार Constants.java फ़ाइल को सही तरीके से संशोधित किया है। TwitterUtils.java में मैंने OAUTH_TOKEN और OAUTH_TOKEN_SECRET भी दर्ज किया है। लेकिन यह चलाने के बाद, मैं त्रुटि संदेश निम्न गया:twitter4j => एंड्रॉइड रनटाइम (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) 

यकीन है कि अगर मैं गलत हूँ, Constant.java में, मैं

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; 

में कुछ भी बदल नहीं किया है मैं "callback" बदलते कोशिश की है नहीं कर रहा हूँ "http://www.MyWebsite.com" के साथ कृपया सलाह दें कि मैं इन समस्याओं को कैसे ठीक कर सकता हूं।

+0

क्या आपने अपना विज्ञापन ADT 17 में अपडेट किया है? – MKJParekh

+0

क्या आपका एपीआई स्तर था? .... मैंने इसे पहले ही एपीआई स्तर 17 में अपडेट किया है, अगर आप अलग-अलग चीज़ का मतलब रखते हैं तो कृपया मुझे बताएं। मैं एंड्रॉइड और जावा के लिए वास्तव में नया हूँ। –

+3

तो आपके लाइब्रेरी फ़ोल्डर का नाम क्या है .. यह 'libs' होना चाहिए यदि आपने इसे lib रखा है तो कृपया इसे' libs' में बदलें और फिर – MKJParekh

उत्तर

19

आप के रूप में आप इस विषय पर विस्तार से जानकारी के लिए एडीटी 17.

चेकआउट इस Article अद्यतन किया है libs को lib से अपने फ़ोल्डर का नाम बदलने की जरूरत है।

+0

दबाएं तो auth_token को संग्रहीत किया गया बहुत बहुत धन्यवाद। तुमने मेरी जान बचाई। जबरदस्त हंसी – cmcromance

4

अगर कोई एडीटी 18 का उपयोग कर रहा है, तो मेरे पास एक lib फ़ोल्डर नहीं था, मैं प्रोजेक्ट, प्रॉपर्टीज, जावा बिल्ड पथ, लाइब्रेरी टैब का विशेष रूप से उपयोग कर रहा था। इस समस्या को हल करने के लिए, मैंने अपनी प्रोजेक्ट के भीतर एक libs फ़ोल्डर बनाया, मेरे बाहरी जार को इस फ़ोल्डर में कॉपी किया, और उसके बाद पुस्तकालय टैब में संदर्भ हटा दिए। परियोजना का पुनर्निर्माण और काम किया!

संबंधित मुद्दे