web-dev-qa-db-ja.com

Android Studio 3.0のタスク実行に失敗しました:dexをマージできません

以下を使用してビルドの実行中にAndroid Studioでビルドエラーが発生していました。

エラー:タスク ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'の実行に失敗しました。 "Java.lang.RuntimeException:Java.lang.RuntimeException:com.Android.builder.dexing.DexArchiveMergerException:dexをマージできません"

私のアプリ:build.gradleファイル:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.pdroid.foodieschoice"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    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'
    compile 'com.firebaseui:firebase-ui-auth:2.3.0'

    testCompile 'junit:junit:4.12'
}
configurations.all {
    resolutionStrategy {
        force 'com.Android.support:appcompat-v7:26.0.1'
        force 'com.Android.support:support-compat:26.0.1'
        force 'com.Android.support:support-core-ui:26.0.1'
        force 'com.Android.support:support-annotations:26.0.1'
        force 'com.Android.support:recyclerview-v7:26.0.1'
    }
}

apply plugin: 'com.google.gms.google-services'

任意の解決策

編集:私はfirebaseのgithubサイトを通じてサンプルを作成し解決しました

60
Anguraj

Cordovaベースのプロジェクトでは、 @ mkimmet が提案するように、ビルドの前にcordova clean Androidを実行します。

54

このエラーは、compileSdkVersionと互換性がない可能性がある外部ライブラリを追加したときに発生します。

external libraryを追加するときは注意してください。

私はこの問題に2日を費やし、ついにこれらのステップに従って解決しました。

  • 26の場合は、すべてのサポートライブラリがbuild.gradle(Module:app)compileSdkVersionと同じであることを確認してください。 enter image description here

  • DefaultConfigカテゴリにmultiDexEnabled trueと入力します。これは重要な部分です。 multiDexEnabled True image

  • File |に移動します。 設定 | ビルド、実行、配置 | インスタントランそしてホットスワップのためにインスタントランを有効/無効にする...そしてOKをクリックしてください_ Enable Instant Run to Hot swap... Image

  • Syncあなたのプロジェクト。

  • 最後に、Build |に移動します。 プロジェクトの再構築をクリックしてください。

  • 注:プロジェクトの再構築は、まずプロジェクトをクリーンアップしてからビルドします。

35

これをgradleに追加してみてください

    Android {
      defaultConfig {
        multiDexEnabled true
        }
   }
23
Ishan Fernando

単に "Build - > Clean Project"を実行してみてください。これで問題は解決しました。

18
Anas

解決:

参照 このリンクへminSdkVersionに応じて、警告をオフにするさまざまなオプションがあるため、20未満に設定されます

 Android {
     defaultConfig {
         ...
         minSdkVersion 15 
         targetSdkVersion 26
         multiDexEnabled true
     }
     ... }

 dependencies {   compile 'com.Android.support:multidex:1.0.3' }

Build.gradleセットにminSdkVersion 20よりも大きいがある場合は、次を使用して警告をシャットダウンします。

  Android {
      defaultConfig {
          ...
          minSdkVersion 21 
          targetSdkVersion 26
          multiDexEnabled true
      }
      ... }

次のように依存関係を更新します。

     dependencies {
        implementation 'com.Android.support:multidex:1.0.3'
     }

繰り返しますが、唯一の違いは依存関係のキーワードです:

20未満のminSdkVersion:compileを使用

20を超えるminSdkVersion:implementationを使用します

  1. これがお役に立てば幸いです。問題が解決した場合は賛成してください。お時間をいただきありがとうございます。
  2. また詳細については、on why this occurs、リンクの最初の段落を読んでください理由を詳しく説明しますか?およびこの警告の意味
12
Modesto Cabrera

私にとっては、追加

multiDexEnabled true

そして

packagingOptions {
        exclude 'META-INF/NOTICE' 
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license'
        exclude 'META-INF/license.txt'
    }

アプリレベルのBuild.gradle ファイルに追加することで問題が解決しました

6

私はmultiDexEnabled trueを含む上記のように多くの解決策を試しましたが、それのどれも私のために働きませんでした。

これは私のために働いた解決策です - app\build.gradleファイルにこのコードをコピーしてください

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.Android.support' && requested.name != 'multidex') {
            details.useVersion "${rootProject.ext.supportLibVersion}"
        }
    }
}

コードを実行する前に、gradlewをクリーンに実行してください。

4
Raj

以下のようにmultiDexEnabled trueを使用してください。

{
 minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

そして

implementation 'com.Android.support:multidex:1.0.3'

この解決策は私のために働いた。

2
Suresh kumar

私にも同じことが起こりました、私がAS 3.0.1にアップデートすることの真っ只中にいて、そしてアップデートをした後、アプリをきれいにしそして再構築した後、すべてが修正されました。

2
Tian Pretorius

また、アプリがMultiDexApplicationをサブクラス化していることを確認してください。

import Android.support.multidex.MultiDexApplication

class App : MultiDexApplication()

アプリケーションクラスをサブクラス化していない場合は、AndroidManifest.xmlに追加します。

<application
  Android:name="Android.support.multidex.MultiDexApplication"
1

私にとって、このエラーを修正したのは、私のアプリのgradle依存関係の1行を変更することでした。

これから

compile('com.google.Android.gms:play-services-gcm:+') {
    force = true
}

これに

compile('com.google.Android.gms:play-services-gcm:11.8.0') {
    force = true
}
1
HedeH

あなたはSDKとプラットフォームのアップデートの間にいますか?そうであれば、それらを完全に完成させてから、続けてみてください。私はたいてい個別のパッケージを更新する必要がありますが、それは時には2.5 GBまで上がる可能性がある全体の更新を取ることに関して更新する必要があります。この完全な更新を行うと失敗することがあります。私はAndroid Studio 3.0にアップグレードした後、私はいくつかのSDKアップデートをしました、そしてすべてのパッケージがアップデートされていなかったので上記のエラーを得ていました。すべてのパッケージをアップデートしたら、上記のエラーはなくなりました。

0
Vineet Jain

吸い込むようなエラーを回避する最も簡単な方法は次のとおりです。

- あなたのアプリのcompilesdkversionと同じようにライブラリcombilesdkversionを変更する

- あなたのbuild.gradleと同じようにライブラリのsupportLibraryのバージョンを変更する(app)

0
Sarojini2064130

自分のコードでこの仕事をすることで、この問題は解決されました。

開く - > build.gradleから値を変更する

compile 'com.google.code.gson:gson:2.6.1'

compile 'com.google.code.gson:gson:2.8.2'
0

Android Studioのバージョンが3.0.1、Gradle Versionが4.1、Android PluginVersionが3.0.0の場合、この問題が発生します。それから私はGradleのバージョンが3.3である、AndroidのAndroidはゼロである、そのような問題はありません。

0
Qian Zhang

私にとっては、問題はモジュール内でのJava 1.8の使用であり、appモジュール内での使用ではありませんでした。私はこれをapp build gradleに追加して動いた。

Android{
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
0
Pelanes

要求されたSDKのバージョンが依存関係と一致しないとき、私はこれを持っていました。強調表示された線をクリックして、これをクリックして赤い電球をクリックします。実際のバージョンを見つける必要はありません、IDEがあなたに代わってそれを理解させてください。そしてmavenの設定にグーグルレポを追加します。

0
VeeKoo

このDexの問題を解決するには、依存関係を1つ実装するだけです。この問題は、同じサーバーから複数の異なるサービスを使用している場合に発生します。プロジェクトで広告とFirestoreを使用していて、両方ともリポジトリメイバーがあるとします。そのため、リポジトリ上で異なるデータを呼び出す必要があります。実装するには、依存関係が必要です。新しいアップデート依存関係: -

 implementation 'com.Android.support:multidex:1.0.3'

永久的にあなたの問題は解決するでしょう

0
Pradeep Sheoran

私の場合はfirebaseライブラリのバージョンを2.6.0から2.4.2に変更することで問題は解決しました

0
Persiaware

これは私のために働くものです。きれいに準備して実行します。

cordova clean Android;
ionic cordova prepare andriod;
ionic cordova run andriod;

それが役に立てば幸い。

0
Lakshan S
 1)multiDexEnabled true 
を追加してください2)コンパイルエラーが発生した場合は、アプリケーションレベルでbuild.gradleを確認してください。あなたは同じ依存関係を見つけます。

Android {compileSdkVersion 28 defaultConfig {

    minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
うまく動くことを願います:) Happy Coding 
0
user8363370

同じエラーを受け取り、myの場合、現在ビルド中のものとは異なるビルドバリアントに関連付けられているビルドエラーを修正すると、エラーは解決しました。

私は見ていたビルドバリアントをエラーなしで問題なくビルドしていましたが、デバッグしようとするとapp:transformDexArchiveWithExternalLibsDexMergerForDebugエラーが発生しました。他のビルドバリアントをビルドするように切り替えたら、ビルドプロセスでのエラーを見つけて修正しました。これで、すべてのビルドバリアントのapp:transformDexArchiveWithExternalLibsDexMergerForDebug問題が解決したようです。

このエラーは参照される外部モジュールのwithinではなく、外部モジュールを参照するビルドバリアントの個別のソースセット内にあることに注意してください。私と同じケースを見ているかもしれない誰かに役立つことを願っています!

0
ThePartyTurtle

同じ問題です。 multidexを有効にしました:defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true

私はキャッシュをクリアし、gradle clean、rebuild、makeを実行し、インポートされたライブラリで衝突がないようにし(すべての推移的な依存関係を取り除きました)、そしてすべての更新を行いました。それでも:

エラー:タスク ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'の実行に失敗しました。 Java.lang.RuntimeException:com.Android.builder.dexing.DexArchiveMergerException:dexをマージできません

ビルドが気に入らなかったことが判明:実装 'org.slf4j:slf4j-Android:1.7.21'

0
trond050666