1) 액티비티 확인

앱에 특정 액티비티가 존재하는지를 명확히 확인하기 위해 dumpsys로 정보를 출력한다.

LAUNCHER 액티비티를 찾는다.

$ dumpsys package com.skmc.okcashbag.home_google
...(생략)...
9e46495 com.skmc.okcashbag.home_google/.activities.Entrypoint filter d2269aa
          Action: "android.intent.action.MAIN"
          Category: "android.intent.category.LAUNCHER"
          Category: "android.intent.category.DEFAULT"
...(생략)...

 

2) 오류확인

am start -an 명령어로 액티비티를 실행한다.

액티비티가 있는것을 확인하고 실행하였으나 존재하지 않는다고 오류 메시지를 출력한다

$ am start -an com.skmc.okcashbag.home_google
Starting: Intent { act=n pkg=com.skmc.okcashbag.home_google }
Error: Activity not started, unable to resolve Intent { act=n flg=0x10000000 pkg=com.skmc.okcashbag.home_google }

 

3) 해결방법

이럴 경우  am start-activity 를 이용하여 앱을 시작할 수 있다.

$ am start-activity com.skmc.okcashbag.home_google/.activities.Entrypoint
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.skmc.okcashbag.home_google/.activities.Entrypoint }

 

4) 왜 발생할까?

우선 확인된 내용은 앱의 targetSdk 버전이 33일 경우 am start -an 으로 실행되지 않는다는 점이다.

앱의 targetSdk 버전이 32 이하의 패키지는 모두 am start -an 으로 실행가능했다.

com.tmon
    versionCode=23005941 minSdk=23 targetSdk=33

$ am start -an com.tmon/.splash.SplashActivity
Starting: Intent { act=n cmp=com.tmon/.splash.SplashActivity }
Error type 3
Error: Activity class {com.tmon/com.tmon.splash.SplashActivity} does not exist.
com.hnsmall
    versionCode=531 minSdk=21 targetSdk=32

$ am start -an com.hnsmall/.presentation.MainActivity
Starting: Intent { act=n cmp=com.hnsmall/.presentation.MainActivity }

 

targetSdk 33은 Android 13에 해당하는 버전이다.

위 정보로 짐작컨데 Android 13 앱에 대한 권한 변경으로 발생한 문제로 보인다.

'IT 일반 > 안드로이드' 카테고리의 다른 글

[기록] Android에서 화면녹화  (0) 2023.09.15

+ Recent posts