web-dev-qa-db-ja.com

Android St​​udio 3.0 Beta4でのDexエラー

Error:Java.lang.RuntimeException: Java.lang.RuntimeException: com.Android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:Java.lang.RuntimeException: com.Android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.Android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.Android.dex.DexException: Multiple dex files define Lcom/google/zxing/integration/Android/IntentResult;
50

Android St​​udio 3.0 beta 4でも同じ問題があります。解決策が見つかりました。

1。Buildメニューから、Clean Projectボタンを押します。

Clean Project

2。タスクが完了したら、BuildメニューからRebuild Projectボタンを押します。

enter image description here

54
Y.E.S.

Android St​​udio 3.0の場合、これをgradleに追加しました。

multiDexEnabled true

そしてうまくいきました!

Android {
    compileSdkVersion 25
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.xx.xxx"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 9
        versionName "1.0"
        multiDexEnabled true //Add this
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
28
Prodigy

そこで、次のことを行ってこの問題を解決しました。

  • プロジェクト内の./gradleフォルダーを削除します
  • すべてのbuildフォルダーとgradleキャッシュを削除します。次のコマンドを実行しました。

どうやって ?

 cd ~/[your project root folder] && find . -name build -exec rm -rf {} \; && rm -rf $HOME/.gradle/caches/

gradle config files$HOME/.gradleフォルダーにあると仮定します。

  • Android St​​udioの内部で、File > Invalidate caches / Restart...にアクセスし、キャッシュを無効にして再起動しました。
18
ADev

Gradleで依存関係を検査し、次のような重複を探すことで、このエラーの原因を特定できるはずです。./gradlew -q app:dependencies

私の場合、ビルド時に次のエラーが発生していました。

Duplicate Zip entry [httpcore-4.4.1.jar

それは私のbuild.gradleでこれを行うことで解決しました:

implementation ('me.dlkanth:stetho-volley:1.0') {
    exclude group: 'org.Apache.httpcomponents'
}
9
IgorGanapolsky

minSdkVersionが21以上の場合

   Android {
        defaultConfig {
           multiDexEnabled true
        }
    }

minSdkVersionが20以下の場合

1)依存関係に次のライブラリを追加する必要があります

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

2) Javaクラスを作成し、それをApplicationから拡張してattachBaseContextメソッドをオーバーライドします。

 public class MyApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

applicationタグのマニフェスト内に作成されたクラスを記載します。

    <application
        Android:name=".MyApplication"
.
.
.
    </application>
7
Opriday

最新バージョンの依存関係を確認してください。通常は、依存関係のバージョンと矛盾しています。

1.Build> Clean Project 2.プロジェクトをリビルドします

マージの問題の原因となっている依存関係の詳細ログを確認し、同じものを更新します。依存関係ごとに同じことを繰り返します。

6
Wills

Android St​​udio 3.0.1で同じ問題に直面しました。上記のように何も機能しないケースをすべて試しました。

ソリューション1:

  • Android St​​udioを閉じます
  • .gradleにあるC:\Users\YourComputerName\.gradleフォルダーを削除しますアプリの.gradleからではなく
  • Android studioを再起動します

必要なすべてのjarをダウンロードし、ビルドパスに追加します

Solution2:

  • App/libsのlibsフォルダーから重複したjarを削除します
  • アプリを再実行します

build.gradleファイルで既に定義されているjarファイルが重複している場合、問題が発生するためです。

これで問題は解決しました。他の人に役立つかもしれません。

3
Shylendra Madda

このエラーには複数の理由があります。きれいにして再構築するようなことはありませんでした。

私にとって問題は依存関係でした:

compile 'org.jetbrains:annotations-Java5:15.0'

私はそれを削除し、すべてが正常に機能しました。

1
Palm

「compile」を「compileOnly」に変更します。これが私にとってうまくいったことです。

私はgradleとbla bla blaを削除する他のコメントを試しましたが、multiDexEnabled trueを追加して問題を解決し、apkが64K以上の方法に達していることを調査します。

enter image description here

参照: https://developer.Android.com/studio/build/multidex.html

0
Putra Purba

私の場合、犯人はSendGrid libで、これを追加して修正されました:

compile 'com.github.danysantiago:sendgrid-Android:1',{
    exclude group: 'org.Apache.httpcomponents', module: 'httpclient'
}
0
Zohar

Android St​​udio 3.0.1を使用していますが、同じ問題に直面していました。他の回答が機能しない場合は、これを試してください:

ツール-> Android-> Gradleファイルとプロジェクトを同期

それは私のために働いた Gradleファイルとプロジェクトを同期する

0
jgodinez

Studio 3.0.0リリースを使用しています。私の場合、唯一の解決策がありました。プロジェクトの「libs」フォルダから古いJARを削除しました。依存関係のある「ksoap2」パッケージでした。少なくとも最も人気のあるパッケージを使用している場合、gradleで取得したパッケージは通常、互いに競合しません。ただし、libsフォルダー内の古いJARは、すべての依存関係が含まれている場合、ビルドをクラッシュさせる可能性があります。

0
Almaz

2017年11月9日にビルドされたAndroid St​​udio 3.0.1 Build#AI-171.4443003を使用しています

Libsフォルダーからjarファイルを削除します。そしてそれは私のためにうまくいく

0
IceCreamVan