【发布时间】:2014-04-25 01:20:53
【问题描述】:
我将所有异步任务放在一个文件中,但它变得有点混乱,所以我决定将它们放在单独的文件/类中。我不断收到一些错误。我做错了什么,谢谢
在我的 mainActivity.and 错误中:
//Handler for the PIN. Leads to the Internet Intent
public void log_in(View v) {
new TwitterLogin(null, null, null).execute();
}
Description
The constructor TwitterLogin() is undefined MainActivity.java
TwitterLogin.java
//Starts an intent that loads up a web browser and asks the user to log in to twitter
// and get a pin#
public class TwitterLogin extends AsyncTask<URL, Integer, RequestToken> {
private Context context;
private Activity Activity;
public Twitter twitter = TwitterFactory.getSingleton();
public RequestToken requestToken = null;
public TwitterLogin(Context context, Twitter twitter,
RequestToken requestToken) {
this.context = context;
this.twitter = twitter;
this.requestToken = requestToken;
}
@Override
protected RequestToken doInBackground(URL... arg0) {
try {
requestToken = twitter.getOAuthRequestToken();
Log.i("Got Request Token", "food4thought");
} catch (TwitterException e) {
Log.i("Failed to get Request Token", "food4thought");
}
// Log.i(requestToken.getAuthorizationURL(), "food4thought");
// requestToken.getAuthorizationURL();
// log_in.setText();
try {
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse(requestToken.getAuthorizationURL()));
context.startActivity(browserIntent);
}
catch (NullPointerException e) {
((Activity) context).runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context.getApplicationContext(),
"Unable to log in, No access to the Internet.",
Toast.LENGTH_LONG).show();
}
});
}
return null;
}
}
这里是日志
04-24 21:27:23.635: E/AndroidRuntime(19644): Process: com.example.food4thought, PID: 19644
04-24 21:27:23.635: E/AndroidRuntime(19644): java.lang.RuntimeException: An error occured while executing doInBackground()
04-24 21:27:23.635: E/AndroidRuntime(19644): at android.os.AsyncTask$3.done(AsyncTask.java:300)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
04-24 21:27:23.635: E/AndroidRuntime(19644): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.lang.Thread.run(Thread.java:841)
04-24 21:27:23.635: E/AndroidRuntime(19644): Caused by: java.lang.NullPointerException
04-24 21:27:23.635: E/AndroidRuntime(19644): at com.example.food4thought.TwitterLogin.doInBackground(TwitterLogin.java:39)
04-24 21:27:23.635: E/AndroidRuntime(19644): at com.example.food4thought.TwitterLogin.doInBackground(TwitterLogin.java:1)
04-24 21:27:23.635: E/AndroidRuntime(19644): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-24 21:27:23.635: E/AndroidRuntime(19644): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-24 21:27:23.635: E/AndroidRuntime(19644): ... 4 more
【问题讨论】:
-
我发布了 logcat。谢谢
标签: java android android-intent android-asynctask