04/28/2025 20:45:30

Unity Android Multidex 사용 가이드

사용 설명

Unity ADT(Intenal)방식을 통한 컴파일 프로젝트는 방법의 수가 65536 제한을 초과할 수 있으며, 흔히 볼 수 있는 Multidex 문제로 본문에 제공되는 DexMerge 툴과 사용설명서에 따라 이 문제를 해결할 수 있습니다.

1 환경 조건

DexMerge 툴은 Java 로 개발되었으며, 다음과 같은 플랫폼에서 지원 및 인증 가능합니다:

Windows 환경:

    1. Java 실행 환경 1.6 또는 그 이상
    1. JAVA_HOME 설정, Java 실행 환경 지향

MAC 환경:

    1. 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 툴 다운로드

DexMerger 툴



Copyright © 2025 MSDK.
All rights reserved.

results matching ""

    No results matching ""