web-dev-qa-db-ja.com

Dexをマージできません-Android St​​udio 3.0

安定したチャネルでAndroid St​​udioを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'

指定されたすべての回答を試しましたが、このエラーを解決できません。助けてください。

42
user8583580

まず、以前のコメントで提案したように、multidexを有効にしました。

その後、エラーが引き続き発生する場合は、Gradle Consoleを開き([メッセージ]セクションの左側にある[コンソール出力の表示]アイコンをクリック)、リンクをクリックしてDebug/Info/Stackオプションで再コンパイルします。これにより、エラーに関する詳細が表示されます。

私の場合、「comをマージできない」というエラーは、「com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0」のエントリが重複していることが原因でした。

競合するライブラリをプロジェクトから手動で削除し、「プロジェクトの再構築」を実行しました(ライブラリの強制的な再読み込み)。これで問題は解決しました。

14
Pablo Alfonso

私はこのエラーがありました:

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
}

過去の日付なので理想的ではありませんが、私にとってはうまくいき、パッチがリリースされるまでそこに到達するはずです。

3
Alex Hermon

同じ名前で異なるバージョンの2つ(またはそれ以上)のライブラリを使用している場合は、build.gradle(アプリ)の依存関係を確認してください。例(私の場合):

implementation files('src/main/libs/support-v4-24.1.1.jar')
implementation 'com.Android.support:support-v4:27.0.2'

取り外してから、クリーニングして再構築します。また、dependenciesbuildscriptの外側にあることに注意してください。

3
JeffNhan
Android {
    defaultConfig {
       multiDexEnabled true
    }
}

この行を:gradleファイルに追加します

2
Vaibhav pandey

同じ.jarライブラリファイルが「libs」フォルダーに存在し、同時にアプリのgradleファイルに「compile」行を追加してソースコードを取得しようとすると、このエラーが発生することがあります。

このいずれか、削除すればこのエラーを克服できます。

これが役に立てば幸いです。

1
suhasini

私はそれを解決した同じ問題を抱えています:

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'
    }
}
1
GeoPamplona

クラスパスを次のように変更するだけです。

クラスパス 'com.Android.tools.build:gradle:2.3.3'

そしてGradleをsycnします。

これが役立つことを願っています。

1
Gaurav

「すべてのgsmライブラリ」おかげで、私の問題の解決に役立ちましたが、gsmライブラリだけでなく、すべてのGoogleライブラリが同じバージョンでなければなりません。 com.Android.support:recyclerview-v7にはcom.Android.support:appcompat-v7とは異なるバージョンがあるため、このデキシングエラーが発生しました。

Androidスタジオでは、build.gradleファイルにこれらの行に赤い下線が表示されます。

1
user2466053

以下のスクリーンショットのヒントどおりに正確に行い、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'

それはうまくいきます

Unable to merge dex

0

代わりにFirebase UIデータベースで同じエラーが発生していました。他の回答で提案されているようにmultiDexを有効にした後でも、まだエラーが発生していました。次に、Firebase UIとFirebase Databaseが、Firebase UI GitHubリポジトリで指定されているものと同じバージョンである必要があることを知りました。

Firebase UI GitHub

0
Rohan Lekhwani

このエラーには多くのシナリオがあるようです。私の場合は1.8 Javaがbuild.gradle(アプリ)でコンパイルされました:

compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

削除してエラーがなくなった

0
Felipe Costa

まだ最近これに苦労していて、コンポーネントを追加した人のために。私にそれを引き起こしたのは、追加することでした:

コンパイル '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'

それが役に立てば幸いです。

0
SlickDev

以下を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バージョンを変更する必要がありました。

  1. Android/app/build.gradleを開き、minSdkVersion 16という行を見つけます。
  2. その行をminSdkVersion 21に変更します。
  3. ファイルを保存します。

また、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 には、行き詰まった場合のより完全なウォークスルーがあります。

0
Casey Schneider

私の場合、私は3つのことをしなければなりませんでした:

  1. 私はFirebaseを使用していたので、FirebaseとGoogle Playサービスのバージョンが同じであることを確認してください。Playサービスの初期バージョンは以前のものでした。主に12.0.1バージョンが役立ちました

  2. これをアプリのレベルbuild.gradleで設定します

    Android {  
        multiDexEnabled true   
    }
    
  3. 再びアプリのレベルbuild.gradleで、追加します

    compileOptions{
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
    
0
Javac Ds

異なるライブラリが同じ子ライブラリに依存しているが、バージョンが異なるため、1つのライブラリの依存関係を次のように除外するためだと思います。

api (rootProject.ext.dependencies["bindingRecyclerView"]) {
    exclude group: 'com.Android.support'
}
0
like

これをあなたのグラドルに追加してください:implementation 'com.Android.support:multidex:1.0.0'

プロジェクトをクリーンにしてから再構築します。これは動作します

0
ArunKumar

これは遅すぎるかもしれませんが、私にも答えがあると思います。私の最近の試用版に基づいて、アプリケーションをコンパイルするときは、同じプロジェクトに同じパッケージのjarファイルとan'implementation'('compile' for 3.0.1 > gradle)がないことを確認してください。私の場合、同じプロジェクトにimplementation 'org.jsoup:jsoup:1.11.2'およびJsoup jarがありました。ルーキーの間違いですが、私は学びました。

0
Granson

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'
}
0
Yash Jain