【发布时间】:2011-10-18 18:40:30
【问题描述】:
当我尝试显示异步任务的工作对话框时,我收到以下错误: java.lang.reflect.InvocationTargetException java.lang.NullPointerException
activity和asynctask的代码是:
public class MainActivity extends Activity {
private ControlLogin ctlLogin;
private ProgressDialog dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
ctlLogin = (ControlLogin)findViewById(R.id.controlLogin);
ctlLogin.setOnLoginListener(new OnLoginListener()
{
@Override
public void onLogin(String email, String password, Boolean saveAccount){
ProgressDialog dialog = new ProgressDialog(getApplicationContext());
dialog.setMessage("Signing...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
new Login().execute(email, password);
}
});
}
public class Login extends AsyncTask<String, Float, CloudApp> {
protected void onPreExecute(){
dialog.show();
}
@Override
protected CloudApp doInBackground(String... arg0) {
CloudApp api = new CloudAppImpl(arg0[0], arg0[1]);
return api;
}
protected void onPostExecute(CloudApp api){
dialog.dismiss();
try {
CloudAppAccount acc = api.getAccountDetails();
Toast toast = Toast.makeText(getBaseContext(), "test: " + acc.getEmail(), Toast.LENGTH_LONG);
toast.show();
} catch (CloudAppException e) {
e.printStackTrace();
}
}
}
}
有什么帮助???谢谢!!
【问题讨论】:
-
您应该发布 NullPointerException 的堆栈跟踪。
-
如何获取堆栈跟踪?
-
从 DDMS 获取错误日志 -> Logcat 窗口
-
Stacktrace 是不必要的,nicholas.hauschild 解决了下面的问题。确保你点击了他的答案旁边的复选标记!
标签: java android progressdialog android-asynctask