web-dev-qa-db-ja.com

Android Studioビルドエラー-複数のdexファイルがLandroid / support / v4 /を定義しています

Android Studioでプロジェクトをビルドできません。次のエラーが表示されます。

Error:Android Dex: [RaditazAndroid] Unable to execute DX
Error:Android Dex: [RaditazAndroid] com.Android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
Error:Android Dex: [RaditazAndroid] at com.Android.dx.merge.DexMerger.readSortableTypes(DexMerger.Java:592)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.merge.DexMerger.getSortedTypes(DexMerger.Java:550)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.merge.DexMerger.mergeClassDefs(DexMerger.Java:531)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.Java:168)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.merge.DexMerger.merge(DexMerger.Java:186)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.Java:300)
Error:Android Dex: [RaditazAndroid] at com.Android.dx.command.dexer.Main.run(Main.Java:232)
Error:Android Dex: [RaditazAndroid] at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:Android Dex: [RaditazAndroid] at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
Error:Android Dex: [RaditazAndroid] at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
Error:Android Dex: [RaditazAndroid] at Java.lang.reflect.Method.invoke(Method.Java:597)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.Android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.Java:147)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.Android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.Java:276)
Error:Android Dex: [RaditazAndroid] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.Java:121)

ただし、このエラーは私には何の意味もありません。プロジェクトの修正を開始する場所についての手がかりを提供しません。誰かが似たようなものに遭遇しましたか?

24
IgorGanapolsky

興味がある人は誰でも、自分の問題を解決しました。私の間違いは、プロジェクトのすべてのモジュールlibフォルダーにAndroid-support-v4.jarおよびgoogle-play-services.jarを貼り付けたことです(私のプロジェクトは3モジュール)。代わりに私がしなければならなかったのは、これらのjarをメインモジュールのlibフォルダーにのみ貼り付け、他のモジュールがそれらを自動的に参照することでした。

44
IgorGanapolsky

Android Studioから離れて、Finder/workspaceでプロジェクトを開き、これを行いました:

1- MyProjectフォルダー->ビルド->中間-> dex-cache-> cache.xml、すべてのsupport-v4.jarアイテムを削除しました。

2- Android Studio、私のプロジェクトのすべてのモジュールに行った-> libフォルダー->そしてsupport-v4.jarも削除しました。

その後、プロジェクトをクリーンアップして実行しましたが、神に感謝しました:)

16
fullMoon

私は同じエラーがありました。gradleファイルに追加することで解決しました。

    dependencies{
        compile 'com.google.Android.gms:play-services:8.3.0'
        compile 'com.Android.support:appcompat-v7:23.1.0'
        compile 'com.Android.support:support-v4:23.1.0'
    } 
6
BMS

あなたが持っている場合:

compile 'com.Android.support:recyclerview-v7:24.2.0'
compile('com.Android.support:appcompat-v7:23.2.0') { exclude group: 'com.google.Android', module: 'support-v4' }

プロジェクトに以下も追加します:

compile 'com.Android.support:support-v4:24.2.0'

または

compile 'com.Android.support:design:24.2.0'
6
careful7j

私の場合、問題はモジュールSDKバージョンにありました。 2.2から4.4に変更し、問題は解決しました。

3
3akat

同じエラーが発生しました。

My-project/app/libsフォルダーのライブラリー(twitter.jar)を削除すると助けになりました。

その後、プロジェクトをクリーンアップして実行し、動作しました。

3
shoaib shaikh

きれいにして再構築するだけで、作業を開始できました。

3
tg2

ABS resフォルダーをresフォルダーとマージし、ActionBarSherlock.jarをグローバルライブラリとして使用することで、別のアプローチを使用しました。

これまでのところうまくいき、これが誰かを助けることを願っています!しかし、これは私が多くのことをするのにうんざりしていて、他の開発者の一部がGradleなしでEclipse ADTを使用しているのでGradleを使用できないため、ハックです。

問題の根本的な原因は、ABSと私のプロジェクトの両方でAndroid-support-v4を使用しており、DEXを複雑にしている

2
Gayan Pathirage

Github を介して提供されるProject Tangoの例で他の誰かがこの問題を抱えていた場合、実行に失敗したプロジェクトのアプリの_build.gradle_ファイルで次の行をコメントアウトすることで解決しました:

compile fileTree(dir: external_lib_prefix + '/jar', include: ['**/*.jar'])

Android Studio 2.3で同じ問題が発生しました。私の場合、ビルドを破棄するバージョン番号が混在していたため、変更しました。

dependencies {
    compile 'com.google.Android.gms:play-services-wearable:7.5.0'
    compile 'com.google.Android.gms:play-services-analytics:7.5.0'
    compile 'com.google.Android.gms:play-services-drive:8.4.0'
}

dependencies {
    compile 'com.google.Android.gms:play-services-wearable:8.4.0'
    compile 'com.google.Android.gms:play-services-analytics:8.4.0'
    compile 'com.google.Android.gms:play-services-drive:8.4.0'
}
1

他の提案されたすべてのことを実行しても、この問題がなぜ続くのか疑問に思っている人にとっては、これが役立つかもしれません。

私にとって問題は、私がGlideライブラリを追加したときに始まった

dependencies {
  .........
  implementation 'com.github.bumptech.glide:glide:4.8.0'
  .........
}

そして、私はすでに追加していました。

implementation 'com.Android.support:design:26.1.0'

これは、どこかでGlideサポートライブラリと矛盾していました。

解決策:Glideサポートバージョンを削除またはダウングレードします。

 implementation 'com.github.bumptech.glide:glide:4.0.0'
0
vikas kumar