【问题标题】:How to resolve modular dependency in gradle如何解决gradle中的模块化依赖
【发布时间】:2017-11-30 19:01:29
【问题描述】:

我有 app 模块和另一个模块 都在gradle中: 应用程序.gradle somemodule.gradle 我在两个模块中都有“ compile 'com.android.support:appcompat-v7:26.1.0' ”,并且在运行 gradle 后显示此错误:

将字节码转换为dex时出错:原因:com.android.dex.DexException: 多个dex文件定义/BuildConfig;

【问题讨论】:

  • 你能展示你的项目结构吗?尤其是你的两个 gradle 文件。
  • 有时这可以通过简单的重建来解决——我今天刚刚遇到这个问题。如果您尝试过,那么正如@SharpEdge 所说,我们需要看到更多。

标签: android android-studio android-gradle-plugin


【解决方案1】:

避免在模块中定义依赖关系,而是在项目级别定义它们。首先,将项目的所有依赖项(所有模块)放在一个 Gradle 文件中,例如 libraries.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 文件(最后一行):

buildscript {

repositories {

    jcenter()

}

dependencies {

    classpath 'com.android.tools.build:gradle:2.2.2'

    /*...*/

  }

}

apply from: "./libraries.gradle"

最后,在您应用的模块 build.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

    /*...*/
}

这将避免所有模块之间重复或冲突的依赖关系。

【讨论】:

    【解决方案2】:

    有时我们会从 Google 产品/API 导入不同的版本。所以, 尝试组织你的 gradle 文件来解决这类问题

    您也可以参考this link 了解如何管理多模块项目中的支持​​库

    【讨论】:

      猜你喜欢
      • 2017-12-30
      • 2016-10-29
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多