편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.07.06

    안드로이드 스튜디오 오류에 대해 질문합니다! Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference


    저는 안드로이드 스튜디오로 간단한 노트앱을 만들고 있습니다.

    그런데 에뮬레이터에 실행을 하려고 하는데 자꾸 꺼지면서 실행이 되지 않습니다. build창에서는 문제가 없어 어떻게 해결해야하는지 난관에 부딪혔습니다. 혹시 제가 올린 stack trace에서 오류를 확인할 수 있을 까요?

    오류부분 stack trace 는 다음과 같습니다

    2020-07-06 00:56:05.456 8998-8998/comcutenote.cuteapp E/AndroidRuntime: FATAL EXCEPTION: main
        Process: comcutenote.cuteapp, PID: 8998
        java.lang.RuntimeException: Unable to start activity ComponentInfo{comcutenote.cuteapp/comcutenote.cuteapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
            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)
         Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
            at comcutenote.cuteapp.MainActivity.onCreate(MainActivity.java:29)
            at android.app.Activity.performCreate(Activity.java:7136)
            at android.app.Activity.performCreate(Activity.java:7127)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
            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) 
    

    오류부분 코드는 다음과 같습니다.

    package comcutenote.cuteapp ;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    import java.util.ArrayList;
    
    public class MainActivity extends AppCompatActivity {
    
       static ArrayList<String> notes = new ArrayList<>();
       static ArrayAdapter arrayAdapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            ListView listView = (ListView) findViewById(R.id.listView);
    
            notes.add("Example note");
    
            arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, notes);
    
            listView.setAdapter(arrayAdapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
    
                    Intent intent = new Intent(getApplicationContext(), NoteEditorActivity.class);
                    intent.putExtra("noteId", i);
                    startActivity(intent);
    
                }
            });
        }
    }
    

    혹시 어떤 부분때문에 에뮬레이터에 실행이 안되는 것인지 알 수 있을까요?

    제가 심각한 코린이라서 말씀해 주셔도 못알아들을 가능성이 커 미리 사과의 말씀을 드립니다. 그래도 최대한 열심히 해결해 보도록 하겠습니다! 감사합니다!

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.07.06

    안드로이드 스튜디오 오류에 대해 질문합니다!


    저는 안드로이드 스튜디오로 간단한 노트앱을 만들고 있습니다.

    그런데 에뮬레이터에 실행을 하려고 하는데 자꾸 꺼지면서 실행이 되지 않습니다. build창에서는 문제가 없어 어떻게 해결해야하는지 난관에 부딪혔습니다. 혹시 제가 올린 stack trace에서 오류를 확인할 수 있을 까요?

    오류부분 stack trace 는 다음과 같습니다

    2020-07-06 00:56:05.456 8998-8998/comcutenote.cuteapp E/AndroidRuntime: FATAL EXCEPTION: main Process: comcutenote.cuteapp, PID: 8998 java.lang.RuntimeException: Unable to start activity ComponentInfo{comcutenote.cuteapp/comcutenote.cuteapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 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) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference at comcutenote.cuteapp.MainActivity.onCreate(MainActivity.java:29) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)  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) 

    오류부분 코드는 다음과 같습니다.

    package comcutenote.cuteapp ;

    import androidx.appcompat.app.AppCompatActivity;

    import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView;

    import java.util.ArrayList;

    public class MainActivity extends AppCompatActivity {

    static ArrayList notes = new ArrayList<>(); static ArrayAdapter arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

        ListView listView = (ListView) findViewById(R.id.listView);
    
        notes.add("Example note");
    
        arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, notes);
    
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
    
                Intent intent = new Intent(getApplicationContext(), NoteEditorActivity.class);
                intent.putExtra("noteId", i);
                startActivity(intent);
    
            }
        });
    }
    

    }

    혹시 어떤 부분때문에 에뮬레이터에 실행이 안되는 것인지 알 수 있을까요? 제가 심각한 코린이라서 말씀해 주셔도 못알아들을 가능성이 커 미리 사과의 말씀을 드립니다 ㅠㅠ 그래도 최대한 열심히 해결해 보도록 하겠습니다! 감사합니다!