以下を使用してビルドの実行中に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サイトを通じてサンプルを作成し解決しました
Cordovaベースのプロジェクトでは、 @ mkimmet が提案するように、ビルドの前にcordova clean Android
を実行します。
このエラーは、compileSdkVersion
と互換性がない可能性がある外部ライブラリを追加したときに発生します。
external library
を追加するときは注意してください。
私はこの問題に2日を費やし、ついにこれらのステップに従って解決しました。
これをgradleに追加してみてください
Android {
defaultConfig {
multiDexEnabled true
}
}
単に "Build - > Clean Project"を実行してみてください。これで問題は解決しました。
参照 このリンクへ :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を使用します
私にとっては、追加
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 ファイルに追加することで問題が解決しました
私は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をクリーンに実行してください。
以下のように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'
この解決策は私のために働いた。
私にも同じことが起こりました、私がAS 3.0.1にアップデートすることの真っ只中にいて、そしてアップデートをした後、アプリをきれいにしそして再構築した後、すべてが修正されました。
また、アプリがMultiDexApplicationをサブクラス化していることを確認してください。
import Android.support.multidex.MultiDexApplication
class App : MultiDexApplication()
アプリケーションクラスをサブクラス化していない場合は、AndroidManifest.xmlに追加します。
<application
Android:name="Android.support.multidex.MultiDexApplication"
私にとって、このエラーを修正したのは、私のアプリの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
}
あなたはSDKとプラットフォームのアップデートの間にいますか?そうであれば、それらを完全に完成させてから、続けてみてください。私はたいてい個別のパッケージを更新する必要がありますが、それは時には2.5 GBまで上がる可能性がある全体の更新を取ることに関して更新する必要があります。この完全な更新を行うと失敗することがあります。私はAndroid Studio 3.0にアップグレードした後、私はいくつかのSDKアップデートをしました、そしてすべてのパッケージがアップデートされていなかったので上記のエラーを得ていました。すべてのパッケージをアップデートしたら、上記のエラーはなくなりました。
吸い込むようなエラーを回避する最も簡単な方法は次のとおりです。
- あなたのアプリのcompilesdkversionと同じようにライブラリcombilesdkversionを変更する
- あなたのbuild.gradleと同じようにライブラリのsupportLibraryのバージョンを変更する(app)
自分のコードでこの仕事をすることで、この問題は解決されました。
開く - > build.gradleから値を変更する
compile 'com.google.code.gson:gson:2.6.1'
に
compile 'com.google.code.gson:gson:2.8.2'
Android Studioのバージョンが3.0.1、Gradle Versionが4.1、Android PluginVersionが3.0.0の場合、この問題が発生します。それから私はGradleのバージョンが3.3である、AndroidのAndroidはゼロである、そのような問題はありません。
私にとっては、問題はモジュール内でのJava 1.8の使用であり、appモジュール内での使用ではありませんでした。私はこれをapp build gradleに追加して動いた。
Android{
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
要求されたSDKのバージョンが依存関係と一致しないとき、私はこれを持っていました。強調表示された線をクリックして、これをクリックして赤い電球をクリックします。実際のバージョンを見つける必要はありません、IDEがあなたに代わってそれを理解させてください。そしてmavenの設定にグーグルレポを追加します。
このDexの問題を解決するには、依存関係を1つ実装するだけです。この問題は、同じサーバーから複数の異なるサービスを使用している場合に発生します。プロジェクトで広告とFirestoreを使用していて、両方ともリポジトリメイバーがあるとします。そのため、リポジトリ上で異なるデータを呼び出す必要があります。実装するには、依存関係が必要です。新しいアップデート依存関係: -
implementation 'com.Android.support:multidex:1.0.3'
永久的にあなたの問題は解決するでしょう
私の場合はfirebaseライブラリのバージョンを2.6.0から2.4.2に変更することで問題は解決しました
これは私のために働くものです。きれいに準備して実行します。
cordova clean Android;
ionic cordova prepare andriod;
ionic cordova run andriod;
それが役に立てば幸い。
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
同じエラーを受け取り、myの場合、現在ビルド中のものとは異なるビルドバリアントに関連付けられているビルドエラーを修正すると、エラーは解決しました。
私は見ていたビルドバリアントをエラーなしで問題なくビルドしていましたが、デバッグしようとするとapp:transformDexArchiveWithExternalLibsDexMergerForDebug
エラーが発生しました。他のビルドバリアントをビルドするように切り替えたら、ビルドプロセスでのエラーを見つけて修正しました。これで、すべてのビルドバリアントのapp:transformDexArchiveWithExternalLibsDexMergerForDebug
問題が解決したようです。
このエラーは参照される外部モジュールのwithinではなく、外部モジュールを参照するビルドバリアントの個別のソースセット内にあることに注意してください。私と同じケースを見ているかもしれない誰かに役立つことを願っています!
同じ問題です。 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'