另一个类中的AsyncTask在此类中调用时会导致NullPointerException

时间:2016-02-26 01:06:57

标签: java android android-asynctask nullpointerexception

我对Android开发很新,当我试图调用另一个类中的内部类NullPointerException时,我面临AsyncTask

我相信这是我实例化的方式,但这就是我所拥有的:

 // This onClick is in my adapter class - which is a separate Java File and class
 @Override
        public void onClick(View v) {
            UploadRes uploadRes = new UploadRes();
            UploadRes.UploadResConfirm uploadResConfirm = uploadRes.new UploadResConfirm(v.getContext());
            uploadResConfirm.execute(fileName, filePath);
        }

public class UploadResConfirm extends AsyncTask<String, String, String> {
    Dialog dialog;
    Context context;

    public UploadResConfirm(Context context){
        this.context = context;
    }

    @Override
    protected void onPreExecute(){
        dialog = new Dialog(UploadRes.this);
        dialog.setTitle("Currently uploading");
        dialog.show();
    }

我认为它与dialog类本身在AsyncTask类中实例化有关。

stack trace上的错误Logcat - Dialog,我认为它位于错误的位置......

   java.lang.NullPointerException
            at codeman.androapp.UploadRes$UploadResConfirm.onPreExecute(UploadRes.java:246)
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
            at android.os.AsyncTask.execute(AsyncTask.java:534)
            at android.view.View.performClick(View.java:4240)
            at android.view.View$PerformClick.run(View.java:17721)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

如果有任何帮助,可以提供一些帮助。

1 个答案:

答案 0 :(得分:0)

而不是dialog = new Dialog(UploadRes.this);

尝试

dialog = new Dialog(context);

您正在传递错误的上下文以创建对话框。