Android Build 및 gradle 관련 버그

2021. 6. 15. 12:02기술/버그

반응형

Gradle이란 Visual Studio에서 빌드 하는 것과 같이 Android에서 빌드하는 개념입니다.

 

유니티에서 빌드 시 Gradle 관련 버그를 볼 수 있는데 해결 경험을 공유하겠습니다.

에러 메시지를 찬찬히 살펴보는 것이 중요합니다.

 

저 역시 함께 개발하는 개발자에게 도움을 받았습니다. 감사합니다.

 

- 버전에 대해서 -

사용환경 Unity 2020.3.11f1

Google.JarResolver_v1.2.162

확인용입니다
최소 API 레벨 굉장히 중요합니다. multidex 때문에

 

1. 프로가드 설정

각 라이브러리 사용 시 프로가드에 설정해 주라는 것들이 있습니다.

proguard-user.txt에 적어줍니다.

예) 

-keep class com.google.games.** { *; }
-keep interface com.google.games._* { *; }

 

2. Gradle 버전 수정

AndroidManifest.xml:5:5-51 Error: Missing 'package' key attribute on element package at

에러 때문에 Gradle 버전을 수정해야 하는데 baseProjectTemplate.gradle을 열어서 3.4.3으로 수정해 주었습니다.

aab 빌드가 되지 않아서 알아보던 도중

사용하는 플러그인들 버전업에 따라서 2021-10-15 기준으로 다시 3.6.0으로 설정하여 빌드하니 성공

 

3. MultiDex 관련

mainTemplate.gadle에서

dependencies 마지막 라인에 compile 'androidx.multidex:multidex:2.0.1' 추가

defaultConfig에 multiDexEnabled true 추가

 

AndroidManifest.xml에서

<application android:name="androidx.multidex.MultiDexApplication"> 설정 (안해도 되는거 같음?)

(그렇지 않으면 앱 실행 중

[Unity Android] java.lang.RuntimeException: Unable to instantiate application android.support.multidex.MultiDexApplication 에러)

 

4. Execution failed for task ':android:processReleaseManifest'. 에러

Manifest merger failed : Attribute application@fullBackupContent value=(@xml/vungle_backup_rule) from [com.vungle:publisher-sdk-android:6.4.11] AndroidManifest.xml:19:9-60
is also present at [com.appsflyer:af-android-sdk:4.11.0] AndroidManifest.xml:14:18-73 value=(@xml/appsflyer_backup_rules).
Suggestion: add 'tools:replace="android:fullBackupContent"' to element at AndroidManifest.xml:19:5-95:19 to override.

 

유니티에서 생성한 커스텀 AndroidManifest.xml에서 적용해야 합니다. (다른 AndroidManifest.xml에서 적용하면 적용이 안되는거 같습니다.)

<application android:allowBackup="false" android.fullBackupContent="false" tools:replace="android:fullBackupContent"> 추가

 

 안되면 다음과 같이 시도

<application tools:replace="android:fullBackupContent,android:allowBackup" android:allowBackup="false" android:fullBackupContent="false">

 

5. Android Build

와 빌드 성공 2일 소모. 그나마 3일 소모하신 분이 알려주셔서 ㅋㅋ 삽질 잘못하면 3일 더 걸릴수도 ㅎㄷㄷ

 

6. Resolve가 안될 때

mainTemplete에 체크해서 해당 파일을 만든 후 Force Resolve를 하면 만들어진 라이브러리들이 모두 삭제된다. 유니티 빌드 시에 Gradle에서 만드는 듯.

 

Unity 2018에서 mainTemplate.gradle 사용 시 Play Services Resolver(Android Resolver)가 동작하지 않을 때 해결 방법 (onsemy.me)

 

Unity 2018에서 mainTemplate.gradle 사용 시 Play Services Resolver(Android Resolver)가 동작하지 않을 때 해결 방

요즘 회사에서 열심히 Build를 하고 있다. 그러던 와중에 드디어 Proguard로만 Dex를 제어하기에 한계에 다다라서 MultiDex를 사용하게 되었다. 어차피 Android 6.0으로 올리긴 해야해서 단순히 최소 Android

onsemy.me

 

 

 

참조

Unity)Android Gradle Version Change (tistory.com)

 

Unity)Android Gradle Version Change

Unity Android Gradle Version Change Unity 에서 Android의 Gradle의 버전을 변경을 해야하는 경우가 생겨서 이렇게 포스팅하게 되었다. Project Setting 의 Android - Publishing Settings에 보면 Build 항목에..

drehzr.tistory.com

[Gradle] Android Studio & Unity Gradle version (tistory.com)

 

[Gradle] Android Studio & Unity Gradle version

Android Studio 일반적으로 사용되고 있는 빌드 환경인 Android Studio에서의 Gradle은 Android Studio는 Gradle을 기반으로 빌드한다. Android Studio에서는 Android를 위해 기능이 추가된 Android Gradle Plugin..

gaeunhan.tistory.com

 

유니티 안드로이드 빌드 에러 - unexpected element <queries> found in <manifest> :: IT 잡동사니 (tistory.com)

 

유니티 안드로이드 빌드 에러 - unexpected element found in

증상 유니티 안드로이드 빌드 시 아래와 같은 에러 /Users/jim/Desktop/workspace/project/project/Temp/gradleOut/launcher/build/intermediates/merged_manifests/release/AndroidManifest.xml:52: AAPT: error:..

ajh322.tistory.com

[Android] Cannot fit requested classes in a single dex file 해결 방법 및 원인 분석 (velog.io)

 

[Android] Cannot fit requested classes in a single dex file 해결 방법 및 원인 분석

어제 개인 토이 프로젝트를 하는 도중에 오류가 발생 했는데 에러가 해결되어 해결방법을 포스팅 합니다.이전에도 앱개발을 하면서 해결한적이 있었던 에러지만 꽤나 예전에 발생했던터라 해

velog.io

메서드가 64K개를 초과하는 앱에 관해 멀티덱스 사용 설정  |  Android 개발자  |  Android Developers

 

HanMin의 세상사는 이야기: [Unity Android] java.lang.RuntimeException: Unable to instantiate application android.support.multidex.MultiDexApplication (today7e.blogspot.com)

 

[Unity Android] java.lang.RuntimeException: Unable to instantiate application android.support.multidex.MultiDexApplication

게임 개발에 대한 이야기를 나누는 블로그입니다.

today7e.blogspot.com

[안드로이드] 앱 삭제 했는데 데이터가 남아 있는 문제 : 네이버 블로그 (naver.com)

 

[안드로이드] 앱 삭제 했는데 데이터가 남아 있는 문제

앱을 삭제 후 재설치하면, 삭제 전에 저장되었던 자료들이 남아있는 문제가 발견되었습니다. 원인은 자동 ...

blog.naver.com

Android Manifest merge conflict (backup rules) · Issue #9 · AppsFlyerSDK/appsflyer-android-sdk (github.com)

 

Android Manifest merge conflict (backup rules) · Issue #9 · AppsFlyerSDK/appsflyer-android-sdk

tools:replace specified at line:20 for attribute android:fullBackupContent, but no new value specified

github.com

 

유니티 2019 -> 2020.3.x로 버전업 시 빌드 에러

[Unity Issue] mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types defined by unityStreamingAssets constant. :: 개발자 쿺의 개발위키 (tistory.com)

 

[Unity Issue] mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types

Unity 버전을 올리고 Android로 Build하는 와중 아래와 같은 이슈가 발생하였다. mainTemplate.gradle file is using the old aaptOptions noCompress property definition which does not include types defined..

hankyo-dev.tistory.com

 

뭔가 중복 시 문제

Unity 빌드 실패 Execution failed for task ':checkReleaseDuplicateClasses'. (tistory.com)

 

Unity 빌드 실패 Execution failed for task ':checkReleaseDuplicateClasses'.

facebook-unity-sdk-7.21.0 Import 후 Unity APK 빌드 실패에러 [에러로그] Execution failed for task ':checkReleaseDuplicateClasses'. > 1 exception was raised by workers: java.lang.RuntimeException: D..

return-1.tistory.com

 

다음 에러

1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class android.support.customtabs.ICustomTabsCallback found in modules classes.jar

Facebook SDK 추가 후 Android 빌드 시 Duplicated class 오류 해결 | by Game Neo | Medium

 

Facebook SDK 추가 후 Android 빌드 시 Duplicated class 오류 해결

Facebook SDK 연동 후 다음과 같은 오류가 계속 발생하면서 빌드 Failed가 떴다.

gameneo.medium.com

 

다음 에러

Temp\StagingArea\android-libraries\GooglePlayGamesManifest.androidlib' is missing AndroidManifest.xml file.

 

[Unity] missing AndroidManifest.xml file. 에러 (tistory.com)

 

[Unity] missing AndroidManifest.xml file. 에러

Project 'D:\Unity\Unity Projects\Paper Airplane\Temp\StagingArea\android-libraries\GooglePlayGamesManifest.androidlib' is missing AndroidManifest.xml file. UnityEngine.GUIUtility:ProcessEven..

textbox.tistory.com

 

 

유니티 안드로이드 64비트(IL2CPP) 빌드 오류 해결법 (tistory.com)

 

유니티 안드로이드 64비트(IL2CPP) 빌드 오류 해결법

구글 플레이 정책에 따라 2019년 8월 1일부터 플레이스토어에 어플을 올리려면 64비트를 지원해야 합니다. 이에 따라 유니티로 어플, 게임 등을 개발할 때도 기존과 다른 설정을 해줘야 했습니다.

bearcode.tistory.com

 

il2cpp.exe did not run properly!

 

안드로이드 프로젝트를 받아서 빌드 했는데 위 에러 나면 진짜 미치겠다. ㅋㅋ

 

경로 문제라는데 경로에 한글은 없고 설마!! 프로젝트명에 밑줄!!! _ <-- 이거 들어가 있어서 빌드가 안 됐던 것.... ㅋ

 


Manifest file does not exist googleplaygamesmanifest.androidlib 에러

 

CloudOnce, GPGS 추가하고 나서 나는 에러는 CloudOnce를 설정해 주지 않아서 에러가 난다.

 

이 파일이 생성되었는지 확인


반응형