04/28/2025 20:45:30
Unity Android Multidex 사용 가이드
사용 설명
Unity ADT(Intenal)방식을 통한 컴파일 프로젝트는 방법의 수가 65536 제한을 초과할 수 있으며, 흔히 볼 수 있는 Multidex 문제로 본문에 제공되는 DexMerge 툴과 사용설명서에 따라 이 문제를 해결할 수 있습니다.
1 환경 조건
DexMerge 툴은 Java 로 개발되었으며, 다음과 같은 플랫폼에서 지원 및 인증 가능합니다:
Windows 환경:
- Java 실행 환경 1.6 또는 그 이상
- JAVA_HOME 설정, Java 실행 환경 지향
MAC 환경:
- Java 실행 환경, 16 또는 그 이상
Java 관련 설정 외에도 Android SDK 의 다운로드가 필요합니다.
2 Unity Android 포맷
일반적으로 표준 Unity Android 스토리지 메인 프로젝트와 라이브러리 포맷을 따르십시오:
+-Plugin/Android
| +-AndroidManifest.xml
| +-assets
| +-libs
| +-library-1
| +-library-2
......
이와 같이 표준적인 Unity Android 프로젝트는 주로 두 부분, 메인과 라이브러리 프로젝트 를 포함하며, 이 중 메인은 Unity 목록 Plugin/Android 의 top-level directory 에 위치해있으며, AndroidManifest.xml, assets, libs 등이 포함되어 있습니다. 하지만 라이브러리의 경우, 프로젝트명이 정해진 디렉터리의 second level directory 에 분포해있습니다.
3 툴 사용
표준 포맷의 Unity Android 프로젝트에 대해서는 아래 단계를 참고하여 Dex 통합을 완료할 수 있습니다.
3.1 기본 조작 단계:
1.버전 디렉토리의 DexMeger_jar.zip 를 DexMeger 로 압축 해제
2.cd DexMeger
3.java -jar DexMerge.jar -uroot {Unity Android 디렉토리} -buildTools {Android Build Tools} -out Android
4.출력된 디렉토리 Android 를 Unity 환경으로 붙어넣기하여 구버전 덮어쓰기
5.Multidexxx.xx.xx.jar 를 Unity Android 프로젝트의 libs 디렉토리로 복사, android:name="android.support.multidex.MultiDexApplication" 를 application 태그로 추가
7.Unity 컴파일 패키징
8.aapt classes2.dex 에서 apk 로 다시 서명
위의 단계를 스크립트대로 처리하실 것을 권장합니다
3.2 주의사항:
1.classes2.dex 는 aapt 에러가 발생하지 않기 위하여 apk 와 동일한 디렉토리에 놓아야 함
2.툴 변환 후, multidex-1.0.3.jar 를 libs 디렉토리로 복사
3.AndroidManifest.xml 수정하여android:name="android.support.multidex.MultiDexApplication" 추가
4.uroot 는 표준적인 unity android 프로젝트 디렉토리 필요
command line 예시:
1.Tool command line:
java -jar DexMerge.jar -uroot ../project/Android -buildTools ../android/sdk/build-tools/27.0.3
2.aapt command line:
aapt a xxx.apk classes2.dex
3.다시 서명:
apksigner sign --ks xxx.keystore --ks-key-alias xxx --ks-pass pass:xxxxxx --key-pass pass:xxxxxx --out xxx.apk xxx-sigined.apk
3.4 기타 파라미터
DexMerge Tool command line 파라미터와 설명은 아래와 같습니다:
-main, 메인프로젝트 디렉토리, 필수
-sub, 서브프로젝트 디렉토리, 여러 프로젝트의 경우 스페이스로 나누기, 필수
-buildTools, Android build tools 디렉토리, 필수
-out, output 디렉토리, 선택 가능
-package, 타겟 package 이름, 선택 가능. 기본값으론 메인프로젝트 package name
-uroot, 표준 Android Unity 프로젝트 디렉토리로, 해당 항목 설정은 -main 과 -sub 의 동시 설정하는 것과 다름이 없음, 선택 가능
비표준 포맷의 Unity Android 프로젝트에 대해서는 적합한 command line 파라미터를 선택하여 처리할 수 있습니다!
4 툴 다운로드
All rights reserved.