安定したチャネルでAndroid Studioを3.0に更新してプロジェクトを実行すると、次のエラーが発生し始めました。
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.Android.builder.dexing.DexArchiveMergerException: Unable to merge dex
プロジェクトのクリーニングと再構築を試みましたが、うまくいきませんでした。任意の助けをいただければ幸いです。
プロジェクトレベルbuild.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.0'
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
アプリレベルbuild.gradle
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.med.app"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
resConfigs "auto"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
compile 'com.Android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
//appcompat libraries
compile 'com.Android.support:appcompat-v7:26.1.0'
compile 'com.Android.support:design:26.1.0'
//butterknife
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//picasso
compile 'com.squareup.picasso:picasso:2.5.2'
//material edittext
compile 'com.rengwuxian.materialedittext:library:2.1.4'
// Retrofit & OkHttp & and OkHttpInterceptor & gson
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.google.code.gson:gson:2.8.2'
compile 'com.squareup.okhttp3:logging-interceptor:3.8.0'
// FirebaseUI for Firebase Auth
compile 'com.firebaseui:firebase-ui-auth:3.1.0'
}
apply plugin: 'com.google.gms.google-services'
指定されたすべての回答を試しましたが、このエラーを解決できません。助けてください。
まず、以前のコメントで提案したように、multidexを有効にしました。
その後、エラーが引き続き発生する場合は、Gradle Consoleを開き([メッセージ]セクションの左側にある[コンソール出力の表示]アイコンをクリック)、リンクをクリックしてDebug/Info/Stackオプションで再コンパイルします。これにより、エラーに関する詳細が表示されます。
私の場合、「comをマージできない」というエラーは、「com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0」のエントリが重複していることが原因でした。
競合するライブラリをプロジェクトから手動で削除し、「プロジェクトの再構築」を実行しました(ライブラリの強制的な再読み込み)。これで問題は解決しました。
私はこのエラーがありました:
com.Android.builder.dexing.DexArchiveMergerException:dexをマージできません
そして、この問題を解決するために私のグラドルを元に戻しました。
app\build.gradle
Android {
compileSdkVersion 25
//buildToolsVersion '26.0.2'
buildToolsVersion '25.0.3'//<< Changed back to old version before my studio 3.0 update
defaultConfig { ....
。\ build.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.3.3' //<< Changed back to old version before my studio 3.0 update
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
過去の日付なので理想的ではありませんが、私にとってはうまくいき、パッチがリリースされるまでそこに到達するはずです。
同じ名前で異なるバージョンの2つ(またはそれ以上)のライブラリを使用している場合は、build.gradle(アプリ)の依存関係を確認してください。例(私の場合):
implementation files('src/main/libs/support-v4-24.1.1.jar')
implementation 'com.Android.support:support-v4:27.0.2'
取り外してから、クリーニングして再構築します。また、dependenciesはbuildscriptの外側にあることに注意してください。
Android {
defaultConfig {
multiDexEnabled true
}
}
この行を:gradle
ファイルに追加します
同じ.jarライブラリファイルが「libs」フォルダーに存在し、同時にアプリのgradleファイルに「compile」行を追加してソースコードを取得しようとすると、このエラーが発生することがあります。
このいずれか、削除すればこのエラーを克服できます。
これが役に立てば幸いです。
私はそれを解決した同じ問題を抱えています:
classpath 'com.google.gms:google-services:3.0.0'
buildscript-> dependenciesで
build.gradle
私のファイルには:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.0'
classpath 'com.google.gms:google-services:3.0.0'
}
}
クラスパスを次のように変更するだけです。
クラスパス 'com.Android.tools.build:gradle:2.3.3'
そしてGradleをsycnします。
これが役立つことを願っています。
「すべてのgsmライブラリ」おかげで、私の問題の解決に役立ちましたが、gsmライブラリだけでなく、すべてのGoogleライブラリが同じバージョンでなければなりません。 com.Android.support:recyclerview-v7にはcom.Android.support:appcompat-v7とは異なるバージョンがあるため、このデキシングエラーが発生しました。
Androidスタジオでは、build.gradleファイルにこれらの行に赤い下線が表示されます。
以下のスクリーンショットのヒントどおりに正確に行い、11.0.4を11.8.0に変更しました
compile 'com.google.Android.gms:play-services-base:11.8.0'
compile 'com.google.Android.gms:play-services:11.8.0'
それはうまくいきます
代わりにFirebase UIデータベースで同じエラーが発生していました。他の回答で提案されているようにmultiDexを有効にした後でも、まだエラーが発生していました。次に、Firebase UIとFirebase Databaseが、Firebase UI GitHubリポジトリで指定されているものと同じバージョンである必要があることを知りました。
このエラーには多くのシナリオがあるようです。私の場合は1.8 Javaがbuild.gradle
(アプリ)でコンパイルされました:
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
削除してエラーがなくなった
まだ最近これに苦労していて、コンポーネントを追加した人のために。私にそれを引き起こしたのは、追加することでした:
コンパイル 'Android.Arch.lifecycle:extensions:1.0.0' annotationProcessor 'Android.Arch.lifecycle:compiler:1.0.0'
修正したのは、それを更新することでした
コンパイル 'Android.Arch.lifecycle:extensions:1.1.1' annotationProcessor 'Android.Arch.lifecycle:compiler:1.1.1'
それが役に立てば幸いです。
以下を11.6.0から11.8.0に変更し、機能しました。
compile 'com.google.Android.gms:play-services-ads:11.6.0'
implementation 'com.google.Android.gms:play-services-ads:11.8.0'
これは link で問題を解決しました。
まず、pubspec.yamlの依存関係を
dependencies:
flutter:
sdk: flutter
cloud_firestore: ^0.8.2
iDEのターミナルでflutter packages get
を実行しました。
また、最小のターゲットSDKバージョンを変更する必要がありました。
また、Android/app/build.gradle
を開いてから、ファイルの最後の行として次の行を追加する必要がありました:apply plugin: 'com.google.gms.google-services'
次に、Android/build.gradle
を開いてから、buildscriptタグ内に新しい依存関係を追加する必要がありました。
buildscript {
repositories {
// ...
}
dependencies {
// ...
classpath 'com.google.gms:google-services:3.2.1' // new
}
}
この後、私のアプリはAndroidエミュレーターで最終的に実行されました。
link には、行き詰まった場合のより完全なウォークスルーがあります。
私の場合、私は3つのことをしなければなりませんでした:
私はFirebaseを使用していたので、FirebaseとGoogle Playサービスのバージョンが同じであることを確認してください。Playサービスの初期バージョンは以前のものでした。主に12.0.1バージョンが役立ちました
これをアプリのレベルbuild.gradleで設定します
Android {
multiDexEnabled true
}
再びアプリのレベルbuild.gradleで、追加します
compileOptions{
sourceCompatibility 1.8
targetCompatibility 1.8
}
異なるライブラリが同じ子ライブラリに依存しているが、バージョンが異なるため、1つのライブラリの依存関係を次のように除外するためだと思います。
api (rootProject.ext.dependencies["bindingRecyclerView"]) {
exclude group: 'com.Android.support'
}
これをあなたのグラドルに追加してください:implementation 'com.Android.support:multidex:1.0.0'
プロジェクトをクリーンにしてから再構築します。これは動作します
これは遅すぎるかもしれませんが、私にも答えがあると思います。私の最近の試用版に基づいて、アプリケーションをコンパイルするときは、同じプロジェクトに同じパッケージのjarファイルとan'implementation'('compile' for 3.0.1 > gradle)
がないことを確認してください。私の場合、同じプロジェクトにimplementation 'org.jsoup:jsoup:1.11.2'
およびJsoup
jarがありました。ルーキーの間違いですが、私は学びました。
Build.gradle(app module)にこの次のコードを追加することで私のために働く
Android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.Android.support:support-v4:26.1.0'
}