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

코드에는 이상이 없는데 계속 앱이 강제종료됩니다.

0 추천
2020-11-29 00:46:40.176 21006-21006/com.example.program13 E/ample.program1: Unknown bits set in runtime_flags: 0x8000
2020-11-29 00:46:41.926 21006-21006/com.example.program13 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.program13, PID: 21006
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.program13/com.example.program13.MainActivity}: java.lang.NullPointerException: Attempt to get length of null array
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.NullPointerException: Attempt to get length of null array
        at com.example.program13.MainActivity.onCreate(MainActivity.java:52)
        at android.app.Activity.performCreate(Activity.java:7802)
        at android.app.Activity.performCreate(Activity.java:7791)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

로그캣입니다 ㅜㅜ 코드 자체에는 에러 없는데 앱 실행하면 아무것도 안되고 앱이 계속 중단됨 이라고 뜨면서 강제종료되네요 도와주십시오ㅜㅜ
겸겸 (120 포인트) 님이 2020년 11월 29일 질문

1개의 답변

0 추천

코드에는 이상이 없으신데 앱이 종료된다니 이상하네요. 로그에는 

java.lang.NullPointerException: Attempt to get length of null array

TransactionExecutor.executeCallbacks 가 실행될 때 null인 array.length를 호출하기 때문에 생기는 에러인데요.

TransactionExecutor.executeCallbacks 싫행되는 곳에서 브레이크 포인트를 걸어놓고 사용하시는 array의 값을 확인하세요. 분명히 널일겁니다. 그 다음에서 이 메소드를 어디에서 호출하는 확인하셔서 왜 널이 들어오는지 확인하셔야 겠죠.

해당 메소드를 호출하는 쪽에서 절대 널값을 넘기면 안되는 경우라면 경우라면 널이 넘어올 경우, 앱을 크래쉬시키는 게 맞습니다. 그렇지 않다면, 널이 안넘오도록 호출하는 쪽을 고치셔야 겠죠.

 

spark (227,470 포인트) 님이 2020년 11월 29일 답변
spark님이 2020년 11월 29일 수정
at com.example.program13.MainActivity.onCreate(MainActivity.java:52) MainActivity 의 52번째 라인에 어떤 코드가 있는지 확인해 보세요.
...