0
我嘗試編寫可在Twitter上登錄的應用程序。我的圖書館是Twitter4j。該代碼一直運行,直到調用方法onResume
。 的無法恢復登錄Twitter中的Activity..java.lang.NullPointerException
exception(Unable to resume Activity...NullPointerException)
是在這條線的方法
onResume():
AccessToken acc = twitter.getOAuthAccessToken(requestToken,verifier);
但我不明白的地方是我的錯誤。有人可以幫助我?
public class MainActivity extends Activity {
private Twitter twitter;
private RequestToken requestToken;
private static RequestToken re;
final public static String CALLBACK_URL = "app://casa";
private RequestToken priv = null;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new updateTwitterStatus().execute();
}
});
}
class updateTwitterStatus extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
String testStatus = "prova tweet ";
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("******")
.setOAuthConsumerSecret(
"*******");
try {
TwitterFactory tf = new TwitterFactory(cb.build());
twitter = tf.getInstance();
Log.i("bauu", "miao");
requestToken = twitter.getOAuthRequestToken(CALLBACK_URL);
String authUrl = requestToken.getAuthenticationURL();
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(requestToken.getAuthenticationURL())));
return authUrl;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
}
}
@Override
public void onResume() {
super.onResume();
Uri uri = this.getIntent().getData();
Log.i("callback funziona", "ciao");
if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
final String verifier = uri.getQueryParameter("oauth_verifier");
// c
try { // the next line is the error's line
AccessToken acc = twitter.getOAuthAccessToken(requestToken,
verifier);
} catch (TwitterException e) {
e.printStackTrace();
}
}
}
非常感謝我瞭解我的錯誤...但是我可以提供一些數據結構來避免此問題嗎? – francedema
看看這個 - https://github.com/syndarin/SocNetApi。它使用Twitter4j。請注意,該項目是在Android 4.0發佈之前創建的,某處可能是UI線程中的網絡調用,這將導致Android 4.0及更高版本發生異常。 – Viacheslav