在 onPostExecute 中从另一个 class 调用方法导致 nullPointerException

Calling method from another class in onPostExecute causing nullPointerException

这也可能对某人有帮助:How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class?

我正在从 onPostExecute() 中的另一个 class 调用方法。

我假设 onPostExecute()doInBackground(String... params) 之后调用,根据文档和调试器,这是正确的。

调用方法:

protected void onPostExecute(String result) {
    CreateHangOut crtHO = new CreateHangOut();
    crtHO.createHangOut(result);
}

调用的部分方法,导致 NPE(方法的第一行):

public void createHangOut(String location) {
    String city=autocompleteTV.getText().toString();
   }

自动完成 TextView(autocompleteTV) 在 activity.

的创建时初始化

我是这样称呼 AsyncTask:

create.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new 
HTTPRequest().execute((autocompleteTV.getText()).toString());
            }
    });

调用 onCreate 的方法(activity 从按钮被点击的地方):

private void initialize() {
    gAPI= new GoogleAPIAutocomplete();
    autocompleteTV = (AutoCompleteTextView) 
    findViewById(R.id.crtHOLocOptionsTV);
    setUpAutocomplete();
    create = (Button) findViewById(R.id.crtHOCreateBtn);
    name =(EditText) findViewById(R.id.crtHONameET);
    create.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new 
    HTTPRequest().execute((autocompleteTV.getText()).toString());
            }
    });
}

因为 createHangOut 方法在 CreateHangOut Activity 中,所以不需要创建新对象来访问方法,只需使用扩展 class 的方法名称调用它13=] class 是 CreateHangOut 的内部 class :

protected void onPostExecute(String result) {
    CreateHangOut.this.createHangOut(result);
}