【发布时间】:2018-04-12 10:04:05
【问题描述】:
在 android studio 中构建应用程序时出现以下错误,为什么会这样?是不是和我的proguard规则或者dexguard规则有关?
当我在 build.gradle 文件中添加“multiDexEnabled true”时,出现以下错误:
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException:
java.nio.file.NoSuchFileException:
D:\android\app\build\intermediates\multi-dex\debug\maindexlist.txt
但是,当我在 build.gradle 文件中添加“multiDexEnabled true”时,出现以下错误:
Error:Execution failed for task
':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException:
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
flatDir { dirs 'D:/DexGuard-8.0.17/lib' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.22.1'
classpath ':dexguard:'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'dexguard'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.c.android"
minSdkVersion 19
targetSdkVersion 26
multiDexEnabled true
}
buildTypes {
debug {
proguardFile 'D:/android/app/proguard-project.txt'
proguardFile 'dexguard-project.txt'
}
release {
proguardFile 'D:/android/app/proguard-project.txt'
proguardFile 'dexguard-project.txt'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
exclude group: 'com.google.code.findbugs'
})
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.android.support:design:26.1.0'
compile 'com.google.android.gms:play-services-base:11.4.2'
compile 'com.google.android.gms:play-services-maps:11.4.2'
compile 'com.google.android.gms:play-services-location:11.4.2'
compile 'com.google.android.gms:play-services-places:11.4.2'
compile 'com.android.support:support-v13:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.specyci:residemenu:1.6'
compile 'com.basgeekball:awesome-validation:2.0'
compile 'com.bahmanm:persianutils_2.10:1.0'
compile 'com.fasterxml.jackson.core:jackson-databind:2.8.6'
compile 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
transitive = true
}
compile 'com.google.guava:guava:23.3-android'
}
【问题讨论】:
-
项目中的一个 jar 文件似乎使用的是旧版本的 google play 服务。
-
你能给我们看看你的 build.gradle 文件吗?
-
@Patzu 你可以执行这个命令来知道依赖树 ./gradlew app:dependencies --configuration compile 然后你看看哪个依赖是重复的。
标签: android android-studio android-proguard android-studio-3.0 dexguard