将库项目作为依赖项添加到另一个库项目

时间:2015-10-21 21:04:18

标签: android android-studio gradle android-library

我一直在尝试将一个库项目作为依赖项添加到Android Studio中的另一个库项目,但没有成功。以下是我的项目结构:

- apps
  - demo (depends on android utilities & android ui)
- libraries
  - android utilities
    - utilities
  - android ui
    - ui (depends on android utilities)

我使用以下指南 Add local Library Project as a dependency to multiple Projects in Android Studio

android utilities / build.gradle

...

android utilities / utilities / build.gradle

apply plugin 'com.android.library'

...

android ui / settings.gradle

include ':ui'
include ':utilities'
project(':utilities').projectDir = new File(settingsDir, '../android utilities/utilities')

android ui / build.gradle

...

android ui / ui / build.gradle

apply plugin 'com.android.library'

...

dependencies {
    compile project(':utilities')
}

我将 Android Utilities Android Ui 设置为单独的项目,我能够毫无问题地编译 Android Utilities 项目。但是,我无法编译单独的 Android Ui 项目。 Android Studio本身并不表示任何错误,但gradle会从不存在的实用程序库中产生有关包的多个错误。

2 个答案:

答案 0 :(得分:1)

我的项目中遇到了类似问题,但设法解决了这个问题。您是否有超过1 构建风格

我最终要做的是在库中添加以下内容(在您的案例中为 /ui/ui/build.gradle ),其中 buildFlavor1 buildFlavor2 - 是您应用中使用的构建变体。我认为问题是因为Gradle在解析依赖关系时不知道可能的配置,所以他无法为每个构建风格正确选择库。希望这有帮助!

configurations {
    buildFlavor1DebugCompile
    buildFlavor2DebugCompile
    buildFlavor1ReleaseCompile
    buildFlavor2ReleaseCompile
}

dependencies {
    ...

    buildFlavor1DebugCompile project(path: ':utilities', configuration: 'buildFlavor1Debug')
    buildFlavor2DebugCompile project(path: ':utilities', configuration: 'buildFlavor2Debug')
    buildFlavor1ReleaseCompile project(path: ':utilities', configuration: 'buildFlavor1Release')
    buildFlavor2ReleaseCompile project(path: ':utilities', configuration: 'buildFlavor2Release')
}

答案 1 :(得分:0)

您没有正确的语法。这样:

include 'ui'

应该是这样的:

include ':ui'

(你错过了结肠)