본문 바로가기

개발 이야기

[Unity] Android 12(31) 이상에서만 실행이 안 될 때

반응형

Android 12 이상의 최신폰에서만 동작이 안 될 때가 있다.

나는 이 문제를 해결은 했지만 해당 코드의 의미는 자세히 모른다.

자세한 이유를 찾고 싶다면 다른 곳을 방문하는 것을 추천한다!

자세한 에러 코드는 디버깅 걸어봐야 알겠지만

핸드폰에 앱깔고 PC에 연결해서 디버깅 모드 돌리기 너무 귀찮다!! ㅎㅎ

그래서 아래 부분 잘 셋팅 되어 있는지 우선 체크해 보자!

 

Android 12 이상부터는  Assets\Plugins\Android\AndroidManifest.xml 의

     <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector"
                  android:exported="true">

빨간 부분을 추가해 줘야 한다!

우선 Project Setting > Player > Publishing Settings > Build > Custom Main Manifest 를 체크하고!

 

다음 Assets\Plugins\Android\AndroidManifest.xml 해당 위치의 파일을 찾아가서

코드를 삽입 하면 된다! 코드의 위치는 대략 이 정도 위치에 있다.

 

추가적으로 Admob을 사용중이라면 Plugins\Android\mainTemplate.gradle 파일에서

dependencies 그룹 안에 아래의 코드를 넣으면 된다.

// Android Resolver Dependencies Start
    implementation 'com.google.android.gms:play-services-ads:20.2.0' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
        constraints {
        implementation('androidx.work:work-runtime:2.7.0') {
            because '''androidx.work:work-runtime:2.1.0 pulled from
           play-services-ads has a bug using PendingIntent without
           FLAG_IMMUTABLE or FLAG_MUTABLE and will fail in Apps
           targeting S+.'''
        }
    }
// Android Resolver Dependencies End

위 코드를 추가해 줘야 한다. com.google.android.gms:play-services-ads 의 버전은 사용하는 버전에 맞춰 넣을것!

아래 스샷 참고

 

반응형

 

추가적으로 gradleTemplate.properties에서도

위 처럼 셋팅이 되어 있는지 확인하자!!

 

다시 말하지만 무슨 의미인지는 모른다!! ㅎㅎ 

반응형