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

안드로이드 스튜디오 구글맵 오류

0 추천
안녕하세요 구글맵 api를 이용해 앱을 만들고 있는 학생입니다. 다름이 아니라 앱은 실행은 되는데 실행하면 다른 여러 개의 페이지는 작동하는데 구글맵을 사용하는 페이지만 들어가면 앱이 튕깁니다.

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 10367
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MapActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3488)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3635)
        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:2175)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7860)
        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:1068)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
        at com.example.myapplication.MapActivity.onCreate(MapActivity.java:28)
        at android.app.Activity.performCreate(Activity.java:7955)
        at android.app.Activity.performCreate(Activity.java:7944)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3463)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3635)
        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:2175)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7860)
        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:1068)

이런식으로 오류가 나는데 무엇이 문제일까요?
2limit (170 포인트) 님이 2022년 5월 7일 질문

2개의 답변

+1 추천

에러메세지로 봐서는 MapActivity.onCreate()에서 SupportMapFragment에 접근하는 코드가 있는 것 같은데 이 부분이 null이라 생기는에러로 보입니다.

spark (226,720 포인트) 님이 2022년 5월 7일 답변
null값을 넣고 다시해보았는데 이런오류가 뜨네요...

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 26666
    java.lang.AssertionError
        at com.example.myapplication.MapActivity.onCreate(MapActivity.java:25)
        at android.app.Activity.performCreate(Activity.java:7955)
        at android.app.Activity.performCreate(Activity.java:7944)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3463)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3635)
        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:2175)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7860)
        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:1068)
왜 널이 생기는지 디버깅을 해보셔야 할 것 같은데요. 관련 코드를 올려보세요.
0 추천
구글 맵을 적용하는 예시 소스랑 비교 확인을 해보시기 바랍니다

에러 로그를 봐선 맵 호출 시 전달하는 callback 함수 설정을 안하신게 아닌가 싶은데요

본인 소스와 예문 소스를 잘 비교 확인하시면 해결될만한 문제라고 봅니다
Elan's (760 포인트) 님이 2022년 5월 11일 답변
...