최근 Multidexing에 문제가 발생했습니다. 특히 gradle multidex 플러그인 ( 'com.android.support:multidex:1.0.0')을 사용하여 Dalvik VM을 빌드 할 때 문제가 발생했습니다.
gradle이 기본 dex 파일에 포함되어야하는 올바른 클래스를 해결하는 데 어려움이있는 것처럼 보입니다. 그 결과, 우리는 성공적으로 완료되지만 빌드 프로세스와 끝까지 때로는 제대로 (자체 MultiDexApplication를 확장하는) 주요 응용 프로그램의 인스턴스에 필요한 클래스 또는 클래스를 포함하지 않는 주요 덱스 파일을 생성합니다.
일관된 빌드를 무차별 대입하는 현재 솔루션은 multidex에서 생성 된 중간 파일을 모니터링하는 것이 었습니다. 좋은 빌드 (즉, 메인 앱과 MultiDexApplication을 올바르게 인스턴스화 한 빌드) 가있을 때 , 메인 dex 파일에 포함 된 클래스 목록을 파일로 복사 한 다음 multidex를 사용하도록 강제합니다 (--main 사용 -dex-list 매개 변수). 이를 통해 일시적으로 필요한 클래스를 기본 dex 파일에 '강제'할 수 있었지만 분명히 유지 관리가 어렵고 새 클래스 / 종속성이 추가 될 때 쉽게 업데이트 할 수 없습니다.
종속성 주입에 Dagger 2를 사용하고 있으며 이것이 multidex 플러그인이 기본 앱의 종속성을 올바르게 식별하는 데 방해가된다는 의혹이 있습니다. 이것이 가능한 원인 일 수 있습니까? 우리는 또한 멀티 덱싱을위한 '진입 점'으로 최소한의 '앱 래퍼'(이는 MultiDexApplication을 확장 함)를 사용하는 다양한 참조를 보았지만 진행할 프로세스에 대한 충분한 문서를 찾지 못했습니다.
이에 대한 통찰력을 제공 할 수 있다면 좋을 것입니다. 이전에 경험 한 문제입니까? 알려진 해결 방법이 있습니까? '앱 래퍼'패턴을 구현할 수있는 방법에 대해 제공 할 수있는 모든 세부 정보도 매우 감사하겠습니다.
새로운 지원 v4 라이브러리에는 multidex가 포함되어 있습니다. 사용해 보셨습니까?
gradle 종속성에 다음을 추가하십시오.
compile "com.android.support:support-v4:$21.0.+"
이 플래그를 Android> gradle의 defaultConfig에 추가하십시오.
android{
defaultConfig{
....
multiDexEnabled true
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다