Android 如何解决gradle中的模块依赖
我有应用程序模块和另一个模块 在格拉德尔: 应用程序gradle 格雷德尔先生 在模块和运行后,我都有“compile'com.android.support:appcompat-v7:26.1.0'”,gradle显示此错误: 将字节码转换为dex时出错:原因:com.android.dex.DexException: 多个dex文件定义/BuildConfig 有时我们从google产品/API导入不同的版本。所以 尝试组织gradle文件以解决此类问题Android 如何解决gradle中的模块依赖,android,android-studio,android-gradle-plugin,Android,Android Studio,Android Gradle Plugin,我有应用程序模块和另一个模块 在格拉德尔: 应用程序gradle 格雷德尔先生 在模块和运行后,我都有“compile'com.android.support:appcompat-v7:26.1.0'”,gradle显示此错误: 将字节码转换为dex时出错:原因:com.android.dex.DexException: 多个dex文件定义/BuildConfig 有时我们从google产品/API导入不同的版本。所以 尝试组织gradle文件以解决此类问题 您还可以参考“了解管理多模块项目中的
您还可以参考“了解管理多模块项目中的支持库”避免在模块中定义依赖项,而是在项目级别定义它们。首先,将项目的所有依赖项(所有模块)放在一个Gradle文件中,如库。Gradle:
ext {
minSdkVersion = 9
compileSdkVersion = 25
buildToolsVersion = "25.0.0"
//Android
androidSupportVersion = "25.0.0"
butterknifeVersion = "8.0.1"
/*...*/
libraries = [
androidSupport : "com.android.support:support-v4:${androidSupportVersion}",
appCompat : "com.android.support:appcompat-v7:${androidSupportVersion}",
designSupport : "com.android.support:design:${androidSupportVersion}",
/*...*/
]
}
然后将其添加到项目主build.gradle文件(最后一行):
最后,在应用程序的模块build.gradle文件中使用它(一个如何执行的示例):
这将避免所有模块之间存在重复或冲突的依赖关系。能否显示您的项目结构?特别是你的两个gradle文件。有时候,这可以通过简单的重建来解决——我今天遇到了这个问题。如果您已经尝试过,那么正如@SharpEdge所说,我们需要看到更多。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
/*...*/
}
}
apply from: "./libraries.gradle"
apply plugin: 'com.android.application'
/*...*/
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
/*...*/
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':your-base-module-name')
compile rootProject.ext.libraries.appCompat
compile rootProject.ext.libraries.androidSupport
compile rootProject.ext.libraries.designSupport
/*...*/
}