2012-09-06 2 views
0

twitter4j를 사용하여 로그인 및 트윗 텍스트를 작성했습니다. 지금까지는 제대로 작동합니다. 기기에서 애플리케이션을 제거하고 애플리케이션을 재설치했지만 up.Below 오는 널 포인터 예외가 앱을 실행하면 코드null 트위터 인증 중 처음으로 사용자가 로그인 할 때의 포인터

prefs = PreferenceManager.getDefaultSharedPreferences(MyActivity.this); 

if (TwitterUtils.isAuthenticated(prefs)) {에게 //이 내가 널 포인터를 얻을 곳

public static boolean isAuthenticated(SharedPreferences prefs) { 

    String token = prefs.getString(OAuth.OAUTH_TOKEN, ""); 
    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, ""); 

    AccessToken a = new AccessToken(token,secret); 
    Twitter twitter = new TwitterFactory().getInstance(); 
    twitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET); 
    twitter.setOAuthAccessToken(a); 

    try { 
     twitter.getAccountSettings(); //error at this line 
     return true; 
    } catch (TwitterException e) { 
     return false; 
    } 
} 

이 로그

입니다입니다 691,363,210
09-06 11:38:48.138: E/AndroidRuntime(868): Caused by: java.lang.NullPointerException 

09-06 12 : 59 : 49.943 : E/AndroidRuntime (929) libcore.net.UriCodec.encode (UriCodec.java:132)에서

09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.readln(HttpURLConnectionImpl.java:1279) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.readChunkSize(HttpURLConnectionImpl.java:404) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.<init>(HttpURLConnectionImpl.java:340) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getContentStream(HttpURLConnectionImpl.java:1175) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.doRequestInternal(HttpURLConnectionImpl.java:1754) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.doRequest(HttpURLConnectionImpl.java:1649) 
09-06 11:38:48.138: E/AndroidRuntime(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:1374) 
09-06 11:38:48.138: E/AndroidRuntime(868): at twitter4j.internal.http.HttpResponseImpl.<init>(HttpResponseImpl.java:45) 
09-06 11:38:48.138: E/AndroidRuntime(868): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:178) 
09-06 11:38:48.138: E/AndroidRuntime(868): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:75) 
09-06 11:38:48.138: E/AndroidRuntime(868): at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:103) 
09-06 11:38:48.138: E/AndroidRuntime(868): at twitter4j.Twitter.getAccountSettings(Twitter.java:1440) 
09-06 11:38:48.138: E/AndroidRuntime(868): at com.android.twitter.TwitterUtils.isAuthenticated(TwitterUtils.java:24) 

어떤 제안이 높이 평가된다. 사전

+0

당신이 그래서 응용 프로그램을 승인하기위한 Twitter.hasAccessToken()를 사용해보십시오 .... 인증을 확인하기위한 그러나 그 preferneces이 지워집니다 제거하는 동안 기본 설정을합니다 인증 TwitterUtils 클래스를 사용하는 .... twitter4j의 문서를 탐색 ...이 방법을 찾을 수 있습니다 !!! –

+0

예.하지만 로그에 환경 설정을 인쇄 할 때 "[email protected]"이라는 오류가 발생할 수 있습니다. –

답변

0

감사드립니다 또한 null

String token = prefs.getString(OAuth.OAUTH_TOKEN, null); 
String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, null); 

이 처음 시도하는 간단한 솔루션으로이 두 값을 시도 할 수 있습니다!

+0

아니요 같은 오류가 나오지 않습니다. :( –

+0

병을 검사하여 문제가 해결되었습니다. 파일을 순서대로 및 자바 빌드 경로의 내보내기 탭 .. –

+0

좋은 .. 미래를위한 최선의 행운! 도움이되면 유용한 표시! –

관련 문제