2021. 6. 15. 12:02ㆍ기술/버그
Gradle이란 Visual Studio에서 빌드 하는 것과 같이 Android에서 빌드하는 개념입니다.
유니티에서 빌드 시 Gradle 관련 버그를 볼 수 있는데 해결 경험을 공유하겠습니다.
에러 메시지를 찬찬히 살펴보는 것이 중요합니다.
저 역시 함께 개발하는 개발자에게 도움을 받았습니다. 감사합니다.
- 버전에 대해서 -
사용환경 Unity 2020.3.11f1
Google.JarResolver_v1.2.162
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)Android Gradle Version Change (tistory.com)
[Gradle] Android Studio & Unity Gradle version (tistory.com)
유니티 안드로이드 빌드 에러 - unexpected element <queries> found in <manifest> :: IT 잡동사니 (tistory.com)
[Android] Cannot fit requested classes in a single dex file 해결 방법 및 원인 분석 (velog.io)
메서드가 64K개를 초과하는 앱에 관해 멀티덱스 사용 설정 | Android 개발자 | Android Developers
[안드로이드] 앱 삭제 했는데 데이터가 남아 있는 문제 : 네이버 블로그 (naver.com)
유니티 2019 -> 2020.3.x로 버전업 시 빌드 에러
뭔가 중복 시 문제
Unity 빌드 실패 Execution failed for task ':checkReleaseDuplicateClasses'. (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
다음 에러
Temp\StagingArea\android-libraries\GooglePlayGamesManifest.androidlib' is missing AndroidManifest.xml file.
[Unity] missing AndroidManifest.xml file. 에러 (tistory.com)
유니티 안드로이드 64비트(IL2CPP) 빌드 오류 해결법 (tistory.com)
il2cpp.exe did not run properly!
안드로이드 프로젝트를 받아서 빌드 했는데 위 에러 나면 진짜 미치겠다. ㅋㅋ
경로 문제라는데 경로에 한글은 없고 설마!! 프로젝트명에 밑줄!!! _ <-- 이거 들어가 있어서 빌드가 안 됐던 것.... ㅋ
Manifest file does not exist googleplaygamesmanifest.androidlib 에러
CloudOnce, GPGS 추가하고 나서 나는 에러는 CloudOnce를 설정해 주지 않아서 에러가 난다.
'기술 > 버그' 카테고리의 다른 글
Mac, iOS 관련 (0) | 2022.01.20 |
---|---|
구글 로그인 버그 (0) | 2021.02.09 |
MissingMethodException: Method not found: 'Default constructor not found...ctor() of System.ComponentModel.UInt32Converter (0) | 2020.09.22 |