gradle library 27.0 - 複数のdexファイルはLandroid / support / v4 / accessibilityservice / AccessibilityServiceInfoCompatを定義します





12 Answers

私はアンドロイドブロック内の私のbuild.gradleファイルに次のコードを追加することで同様のエラーを解決しました。

android {
    dexOptions {
        preDexLibraries = false
    }
}
version 28 design

コマンドラインからgradle assembleDebugを実行すると、私は突然このエラーになります:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)

私がv4でgrepすると、私のビルドフォルダの中に2つのファイルがあります。

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches
Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches

私のgradleファイルには、このサポートライブラリのみが含まれています:

compile 'com.android.support:support-v13:19.0.0'

r7ライブラリがどういうふうに含まれているかについては、私は困惑しています。 私はgradle cleanを実行しましたが、assembleDebugを再実行すると常にそこに現れます。

ビルドディレクトリ内でr7をgrepすると、ファイル内に表示されます。

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches

v13が含まれていないと、他のものはコンパイルされません。

しかし、v3にはv4サポートライブラリが含まれていませんか?

これは、プレイサービスのAARバンドルとv13ライブラリとの間に互換性がありませんか?

私はgradleplease.appspot.comからgradleファイルをつかんだ。

プレイサービスを削除しても問題は解決されません。 同じエラー。

build.gradle内の私の依存関係:

 dependencies {


 // Google Play Services
//compile 'com.google.android.gms:play-services:4.0.30'

// Support Libraries
//compile 'com.android.support:support-v4:19.0.0'
///compile 'com.android.support:appcompat-v7:19.0.0'
//compile 'com.android.support:gridlayout-v7:19.0.0'
compile 'com.android.support:support-v13:19.0.0'
compile 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'
compile 'commons-codec:commons-codec:1.9'
compile 'com.madgag:markdownj-core:0.4.1'
compile 'com.wu-man:android-oauth-client:0.0.2'
compile 'com.google.http-client:google-http-client-jackson2:1.17.0-rc'
compile 'org.apache.commons:commons-lang3:3.2'
compile 'com.google.code.gson:gson:2.2.4'
}



Aの絵は1000語の価値があるので

私のような初心者でこの作業を簡単かつ迅速に行えるようにする。 これは私のために働いた@ edsappfactory.comによって投稿された答えを示すスクリーンショットです:

まず 、Androidstudioの右側にあるGradleビューを開き、アプリケーションの項目でTasks ] androidDependencies [ Android ]を選択し、 androidDependencies右クリックして[ Run ]を選択しRun

次に、あなたはこのようなものを見るでしょう:

その主な理由は、私はこれを投稿して、 gradleタスクや上記のコマンドを実行する場所を知ることは容易ではなかったということです。 それで、これはそれらをexcuteする場所です。

したがって、gradleコマンドを実行する:

最初:

二番目:

それは簡単です。

それでおしまい。

ありがとうございました。




ButterKnife 8.5.1にアップグレードするときにこのエラーが発生しました。 他の回答は私のために働いていませんでした。

私はgradle -q :app:dependenciesを使ってツリーを見てから、競合が見つかるまでjarファイルを調べました。 競合は、バナーナイフのcom.android.support:support-compat:25.1.0への依存性にアクセシビリティクラスのバージョンが含まれていて、 com.android.support:support-v4:23.1.1もクラスが含まれていたということです。

私はこれから私の依存関係を変えて解決しました:

compile 'com.jakewharton:butterknife:8.5.1'

これに:

compile('com.jakewharton:butterknife:8.5.1') {
    exclude module: 'support-compat'
}

これまでのButterKnifeの操作には影響していないようです。

編集:私のアンドロイドサポートライブラリをバターナイフに合わせてアップグレードするという、より良い解決策があります:

compile('com.android.support:appcompat-v7:25.2.0')
compile('com.android.support:design:25.2.0')
compile 'com.jakewharton:butterknife:8.5.1'



exclude module: 'support-v4'

私はプロジェクトの依存関係で私のために働かないだろう、私はそれを働かせることができる唯一の方法は、次の構文を介していた:

configurations {
    dependencies {
        compile(project(':Android-SDK')) {
            compile.exclude module: 'support-v4'
        }
    }
}

場所:Android-SDKはプロジェクト名です。




レガシープロジェクトでも同じエラーが発生しました。 私のせいで、サポートライブラリは2回含まれていました.1回はgoogle-play-services libの中に、もう1つはスタンドアロンとして含まれていました。

これは私がそれを修正した方法です:

悪いbuild.gradle:

dependencies {
   compile files('libs/android-support-v4.jar') 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}

良いbuild.gradle:

dependencies {
   // compile files('libs/android-support-v4.jar')  // not needed 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}

誰かを助けることを願っています:-)




同様の dex問題解決メソッド

gradle.buildに含まれていたもの:

compile files('libs/httpclient-4.2.1.jar')
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

問題は、私が削除したときに解決されました

compile files('libs/httpclient-4.2.1.jar') 

私のgradleは次のようになります:

apply plugin: 'com.android.application'

android {

compileSdkVersion 24
buildToolsVersion "24.0.3"

defaultConfig {
    applicationId "com.mmm.ll"
    minSdkVersion 16
    targetSdkVersion 24
    useLibrary  'org.apache.http.legacy'
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
}

dependencies {

compile 'com.google.android.gms:play-services:6.1.+'
compile files('libs/PayPalAndroidSDK.jar')
compile files('libs/ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar')
compile files('libs/picasso-2.1.1.jar')
compile files('libs/gcm.jar')
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

JARファイルとコンパイルされたgradleプロジェクトには冗長性がありました

そのため、同じクラスを持つ依存関係とjarファイルを鋭く探します。

冗長性を取り除く。
これは私のために働いた。




私はcom.google.android.gms:play-services-analytics:8.3.0android-support-v13.jarおり、 exclude module: 'support-v4'が動作しませんでした。

私にとっては、 android-support-v13.jarファイルではなく、 android-support-v13アーティファクトを使用していました。

それの代わりに

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile files('libs/android-support-v13.jar')

}

私は使った

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile ('com.google.android:android-support-v13')

}




これは厄介な問題であり、根本的なケースを見つけるのに時間がかかることがあります。 あなたが進めるべき方法は、@ CommonSWareの答えです。

私は最近この問題に直面し、解決するのが難しいと感じました。

私の問題は、build.gradleに "+"バージョンのライブラリを含めることでした。 ライブラリの最新版には古いデクスターとバングが含まれていました。

私は古いバージョンのライブラリに戻ってそれを解決しました。

あなたのandroidDependenciesを実行し、実際に何が起こっているかを確認することは良いことです。 あなたのビルドフォルダで検索するのも良いです。

とりわけAndroid Studio 2.2では、この問題を追跡するための機能が用意されています。

ハッピーコーディングガイズ




私は依存関係の中で 'com.android.support:support-v4:18.0.+'コンパイルを削除して動作します




私はプロジェクトにreact-native-paletteを追加react-native-paletteときと同じ問題を抱えていましたが、ここに私の依存ツリーがあります:

./gradlew app:dependencies
+--- project :react-native-palette
|    +--- com.facebook.react:react-native:0.20.+ -> 0.44.2
|    |    +--- javax.inject:javax.inject:1
|    |    +--- com.android.support:appcompat-v7:23.0.1
|    |    |    \--- com.android.support:support-v4:23.0.1
|    |    |         \--- com.android.support:support-annotations:23.0.1 -> 24.2.1
...
|    \--- com.android.support:palette-v7:24.+ -> 24.2.1
|         +--- com.android.support:support-compat:24.2.1
|         |    \--- com.android.support:support-annotations:24.2.1
|         \--- com.android.support:support-core-utils:24.2.1
|              \--- com.android.support:support-compat:24.2.1 (*)
+--- com.android.support:appcompat-v7:23.0.1 (*)
\--- com.facebook.react:react-native:+ -> 0.44.2 (*)

android/app/build.gradlecom.android.support:appcompatバージョンを変更するまで、私は多くのソリュトンを試してみましたが、修正できませんでした。

dependencies {
    compile project(':react-native-palette')
    compile project(':react-native-image-picker')
    compile project(':react-native-camera')
    compile fileTree(dir: "libs", include: ["*.jar"])
    // compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.android.support:appcompat-v7:24.2.1"
    compile "com.facebook.react:react-native:+"
}

複数のエントリが大きな問題ではないようですが、バージョンの不一致は




私は同じ問題を抱えていました。私の解決策はサポートバージョン'27。+ '(27.1.0)を'27 .0.1'に変更しています。




これをproject.propertiesに追加することですべての問題を解決しました

cordova.system.library.7=com.android.support:appcompat-v7:27.1.0



Related