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;
Answer 1:
我有过Android Studio 3.0 beta 4版本的我找到了解决同样的问题。
1.从Build
菜单,按Clean Project
按钮。
2.任务完成后,按Rebuild Project
从按钮Build
菜单。
Answer 2:
了解Android Studio 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'
}
}
}
Answer 3:
因此,我通过执行以下操作来解决这个问题:
- 删除
./gradle
您的项目文件夹里面 - 删除所有构建文件夹和gradle这个缓存 。 我跑以下命令:
怎么样 ?
cd ~/[your project root folder] && find . -name build -exec rm -rf {} \; && rm -rf $HOME/.gradle/caches/
假设你的gradle这个配置文件是在$HOME/.gradle
文件夹。
- Android的工作室里面,去
File > Invalidate caches / Restart...
和无效的缓存和重新启动它。
Answer 4:
您应该能够通过检查的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'
}
Answer 5:
如果您的minSdkVersion是21或更高
android {
defaultConfig {
multiDexEnabled true
}
}
如果你的minSdkVersion是20或更低
1)您必须添加在依赖以下库
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
2)创建一个Java类则它从应用延伸并覆盖attachBaseContext方法。
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
3)提应用标签内的清单创建的类。
<application
android:name=".MyApplication"
.
.
.
</application>
Answer 6:
检查你的依赖关系最新的版本通常是不一致与您的任何依赖关系的版本。
1.Build>清理项目2.重建项目
检查详细日志的依赖性导致合并问题,并更新相同。 重复同样的每个依赖性。
Answer 7:
我在Android Studio中3.0.1面临同样的问题,我试过上述所有可能的情况下,没有什么工作对我来说,我终于解决它通过
解决方法1:
- 关闭Android的工作室
- 删除
.gradle
位于文件夹C:\Users\YourComputerName\.gradle
不是从应用程序的.gradle
- 重新启动机器人工作室
它会下载所有必要的罐子和添加到您的构建路径
溶液2:
- 删除重复的罐子从库在app / libs文件夹
- 再次运行该应用程序
因为如果它已经定义了重复的jar文件build.gradle
文件时,它会导致问题。
这解决了这个问题对我来说。 它可以帮助别人..
Answer 8:
此错误可以有多种原因。 不干净,重建或anythging这样做的工作对我来说。
对我来说,问题是依赖关系:
compile 'org.jetbrains:annotations-java5:15.0'
我删除它,一切运行良好。
Answer 9:
更改“编译”到“compileOnly”这是为我工作。
Answer 10:
在我的情况的罪魁祸首是SendGrid lib下,加入这一点,它被认为是固定的:
compile 'com.github.danysantiago:sendgrid-android:1',{
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
Answer 11:
我使用的是Studio 3.0.0版本。 在我的情况有唯一的解决办法:我已删除在我的项目的“库”文件夹中的JAR老:这是“ksoap2”包的依赖关系。 与gradle这个获得的软件包通常不会互相冲突,至少如果你使用的是最流行的。 但旧的JAR在libs文件夹可以粉碎你的构建,如果它包括了所有自己的依赖。
Answer 12:
我试图从消除gradle这个和唧唧歪歪的其他意见,但加入multiDexEnabled true
解决我的问题,我研究我的APK已达到64K的方法。
编号: https://developer.android.com/studio/build/multidex.html )
Answer 13:
我使用过Android Studio 3.0.1构建#AI-171.4443003,建于2017年11月9日
我从libs文件夹中删除JAR文件。 而这项工作对我很好
Answer 14:
我使用过Android Studio 3.0.1,并面临同样的问题。 如果其他人回答不工作试试这个:
工具 - > Android的 - >同步工程与摇篮文件
它为我工作的同步工程与摇篮文件
Answer 15:
有时它可以发生由于相同的库(jar文件)存在两次或您的项目已达到64K的方法限制。
解决方法:1)删除数据绑定,如果你的项目中使用这种2)从lib文件夹中删除相同的类型库,或从C删除.gradle文件// //用户// your_pc的gradle 3)在你的build.gradle应用此。
android {
defaultConfig {
multiDexEnabled true
}
}
Answer 16:
通过移除Android的数据绑定库解决了这个:
dataBinding {
enabled = true
}