1

이 질문은 appDebugAssemble 빌드를 극복하기위한 4 일 간의 길고 고통스런 여정의 여파입니다. 나는 상당한 양의 주제/기사를 읽었습니다. google은 "multidex"라는 용어를 사용하여 아무 것도 찾아 보지 않았지만 아무 소용이 없습니다.안드로이드 MultiDex : 모든 시간 구원은 필수적입니다

최근에 Android Studio 3.0 베타 4를 사용하기 시작했으며 그에 따라 SDK 버전을 Android O 빌드 릴리스로 업데이트했습니다. 이와 함께, 나는 AS3b4를 Gradle 4.1과 함께 사용하고 있으며, 지금까지 새로운 업데이트를 엄청나게 즐기고있었습니다.

4 일 전 Firebase Analytics와 Messaging을 프로젝트에 추가하기로 결정 했으므로 그것이 남쪽으로갔습니다. 간략하게, 나는 MultiDex가 어떻게 구성되어야하는지에 대한 제안들 (그리고 SO에 대한 받아 들인 대답들)로부터 30 개 이상의 접근법을 시도했다. 그리고 모두가 빌드 패스를 만들지 않았기 때문에, 내가 시작하고있는 상태에 도달하고있다. 특히 Play 스토어에 앱을 출시 할 즈음에 나에게 마법을 걸었다 고 생각하는 것입니다. 나는 이것을 읽고 다시 읽었습니다. https://developer.android.com/studio/build/multidex.html

당신의 공통된 지혜가 여기에 있습니다. 잠재적 인 해결책이 나오면 많은 개발자들이가는 것을 막을 것입니다. 굵게 또는 머리를 벽에 두드리는 것. 지금 내 가슴 오프두고, 여기

apply plugin: 'com.android.application' 
compileSdkVersion 26 
buildToolsVersion "26.0.1" 
defaultConfig { 
    minSdkVersion 19 
    targetSdkVersion 26 
    multiDexEnabled true 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     signingConfig signingConfigs.config 
    } 
    debug { 
     minifyEnabled false 
     debuggable true 
     useProguard false 
    } 
} 
dexOptions { 
    javaMaxHeapSize "4g" 
    preDexLibraries = false 
} 

dependencies { 
    ... 
    implementation 'com.android.support:multidex:1.0.2' 
} 
apply plugin: 'com.google.gms.google-services' 

기대 사용자 정의 MyApp를 클래스

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

app.gradle 내 구성 세부 사항은 무엇 재능이 풍부한 커뮤니티 것이다 저와 다른 사람들이이 같은 전염병으로 고통 받아야합니다. 고맙습니다!

편집 : 오류 로그를 붙여 넣는 것을 완전히 잊어 버렸습니다.

실행이 작업 실패 ': 응용 프로그램 : transformDexArchiveWithExternalLibsDexMergerForDebug을'잘못 무엇

: 이것은 내가 직면하고있는 무슨이다.

> java.lang.RuntimeException가 : com.android.builder.dexing.DexArchiveMergerException : 나는 내 연구를 조금 더 견딜 수있을 것 같아요,하지만 난 거의 절망적 인 느낌 덱스에게

+0

당신이 얻고있는 무엇이 오류. 게시물 로그 –

+0

내 나쁜, 내가 받고있는 오류 로그로 질문을 업데이 트했습니다. 감사. – Xhezairi

+0

@Xhezairi 제공 한 로그 오류가 너무 일반적입니다. 그것은 단지 일어난 일을 말하지만 왜 그런지는 말하지 않습니다. 근본적인 이유를 찾으십시오. 예를 들어, 이것의 근본적인 이유 중 하나는'Multiple dex files define {class-name}'입니다. –

답변

1

확인을 병합 할 수 없습니다 . 나는 마침내이 문제를 해결할 수있게되었지만 이후의 참조를 위해 게시합니다. 우리 애플 리케이션에서 MultiDexing을 사용하도록 실제로 투쟁하는 많은 사람들이 있다는 것을 알고 있기 때문에 나중에 참조 용으로 게시 할 것입니다.

내 실제 문제는 개의 중복 된 버전의 Google Play 서비스 라이브러리입니다. 나는 Facebook Audience Network SDK를 사용하고 있으며 com.google.android.gms:play-services-ads:10.0.4에 의존하고 Firebase 구현은 11.2.2에 달려 있습니다.

라이브러리가 의존하는 종속 관계에 대해 자세하게 살펴 보지 않는 한, @AlexLipov가 "오류 로그가 너무 일반적"이라고 말했기 때문에 실제로 이것을 파악할 방법이 없습니다. 내 전구가 GitHub의 this comment에서 밝아졌습니다.

결론적으로, 공식적으로 MultiDex guide을 따르고 유사한 문제가 나타나면 잠재적 인 의존성 충돌을 식별하기 위해 피크를주고 그에 따라 최신 버전을 사용하도록 다음을 수행하십시오. gradle --stacktrace를 실행

implementation('com.facebook.android:audience-network-sdk:4.25.0') { 
    exclude group: 'com.google.android.gms' 
} 

언급의 가치 마지막 주

이 문제를 상당히 좁히는 데 도움이됩니다. This might come in handy too.

P. 감사와 알렉 스에 chiming에 대한.