2024년 4월 12일 금요일

Unity 안드로이드 환경에서의 (adb 없이)효과적인 디버깅 방법

 

가끔씩 PC 환경과는 다르게 안드로이드에서 애플리케이션이 제대로 동작하지 않는 경우가 있습니다. 이때는 로그를 보면서 디버깅을 진행해야 합니다.

아래는 adb가 없을때 삼성 휴대폰에서 정리한 안드로이드 환경에서 Unity 애플리케이션을 디버깅하는 방법입니다.


  1. 문제가 의심되는 위치에 다음과 같은 형태로 로그를 추가합니다.

    Debug.Log("bgmEffect null");
    
  2. 휴대폰용으로 APK 빌드를 하여 문제를 재현합니다.

  3. ADB 프로그램이 있다면, 아래의 과정을 수행하지 않아도 됩니다. 그렇지 않은 경우에는 다음과 같은 절차를 따릅니다.

    *#9900#  화면 (두번째 메뉴 Run dumpstate/logcat, 다섯번째 Copy to sdcard 실행)

    • 휴대폰의 *#9900# 덤프 획득 모드로 진입
    • Run dumpstate/logcat 실행
    • Copy to sdcard 메뉴 실행
  4. 휴대폰을 PC와 연결한 후 log 폴더를 찾아서 dumpstate_모델명_날짜.log 파일을 PC로 복사합니다.

  5. 편집기 프로그램을 열고 "Unity :"로 검색합니다.

  6. 이렇게 로그를 확인하면 call stack이 나옵니다.

  7. 04-12 21:57:16.992 10610 31520 31564 I Unity   : bgmEffect null
    04-12 21:57:16.992 10610 31520 31564 I Unity   : GameManager:FadeOutToScene(String)
    04-12 21:57:16.992 10610 31520 31564 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
    04-12 21:57:16.992 10610 31520 31564 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
    04-12 21:57:16.992 10610 31520 31564 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
    04-12 21:57:16.992 10610 31520 31564 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
    04-12 21:57:16.992 10610 31520 31564 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:Process()
    


  8. 로그를 활용하여 필요한 경우 더 많은 곳에 로그를 추가하고 위의 절차를 반복하여 문제를 해결합니다.


이와 같은 방법을 통해 안드로이드 환경에서 Unity 애플리케이션의 문제를 신속하게 해결할 수 있습니다.





댓글 없음:

댓글 쓰기