0

twitter4j を使用してログインし、テキストをツイートしました。今まではすべて正常に動作しています。デバイスからアプリケーションをアンインストールし、アプリケーションを再インストールしましたが、アプリケーションを実行すると、null ポインター例外が発生します。以下はコードです。

prefs = PreferenceManager.getDefaultSharedPreferences(MyActivity.this);

if (TwitterUtils.isAuthenticated(prefs)) {//ここで null ポインタを取得します

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;
    }
}

これがログです

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)

どんな提案でも大歓迎です。事前に感謝します

4

1 に答える 1

0

この2つの値を次のように作成することもできますnull

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

これは、最初に試す簡単なソリューションです。

于 2012-09-06T06:41:43.003 に答える