마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AsyncTask, NullPointerException 에러 [closed]

0 추천

mysql을 php에 뿌려준 것을 android에 가져오는 작업인데요

AsyncTask 하니 nullpointException 에러가 뜨는데ㅠ

어디서 값전달이 에러가 났는지 잘 모르겠네요ㅠㅠ


<NetworkTask.java>

package com.example.graph4;

import android.content.ContentValues;
import android.os.AsyncTask;
import android.widget.TextView;

class NetworkTask extends AsyncTask<Void, Void, String> {

    private String url;
    private ContentValues values;

    TextView tv_outPut;

    public NetworkTask(String url, ContentValues values) {

        this.url = url;
        this.values = values;
    }

    @Override
    protected String doInBackground(Void... params) {

        String result; // 요청 결과를 저장할 변수.
        RequestHttpURLConnection requestHttpURLConnection = new RequestHttpURLConnection();
        result = requestHttpURLConnection.request(url, values); // 해당 URL로 부터 결과물을 얻어온다.

        return result;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        //doInBackground()로 부터 리턴된 값이 onPostExecute()의 매개변수로 넘어오므로 s를 출력한다.
        tv_outPut.setText(s);
    }
}

 


 

 

<Logcat>

2019-10-10 16:53:26.508 8410-8410/com.example.graph4 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.graph4, PID: 8410
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at com.example.graph4.NetworkTask.onPostExecute(NetworkTask.java:35)
        at com.example.graph4.NetworkTask.onPostExecute(NetworkTask.java:7)
        at android.os.AsyncTask.finish(AsyncTask.java:695)
        at android.os.AsyncTask.access$600(AsyncTask.java:180)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

 

질문을 종료한 이유: 해결
컴맹이 (170 포인트) 님이 2019년 10월 10일 질문
컴맹이님이 2019년 10월 10일 closed

1개의 답변

0 추천
 
채택된 답변

로그에 나오듯 tv_outPut 를 설정한 부분이 안 보입니다.

    public NetworkTask(String url, ContentValues values, TextView tv_outPut) {

        this.url = url;

        this.values = values;

        this.tv_outPut = tv_outPut;

    }

같이 할당 해 주세요.

익명사용자 님이 2019년 10월 10일 답변
컴맹이님이 2019년 10월 10일 채택됨
감사합니다 ㅠㅠ 할당해주니까 에러도 사라지고, 화면도 정상적으로 실행이 됩니다. 다만, 화면에 아무것도 안나오고 하얗게만 나오는데 흠.. 이건 좀 더 고민해보겠습니다.
...