android - 为什么gradle认为我的 'libraries'目录是一个项目

标签 android configuration gradle dependencies

我试图运行一些包含指定配置的 gradle 命令,但收到错误消息“未找到名称为‘我尝试过的每个名称’的配置”。这通常是由于其中一个依赖项中缺少 build.gradle 文件引起的。果然我找到了违规项目:

Evaluating project ':libraries' using empty build file.

但是libraries其实并不是一个项目,它只是一个存放所有项目依赖的文件夹。 libraries目录和我的主工程在同一层,我的settings.gradle文件是:

include ':libraries:some-sdk'
include ':libraries:another-sdk'

我的 build.gradle 中的依赖项是:

dependencies {
    compile project(':libraries:some-sdk')
    compile project(':libraries:another-sdk')
    compile files('libs/some-library.jar')
    compile 'some-maven-repo:some-artifact:X.X.X'
}

我还使用 commonsware 的多项目演示重现了这个问题:https://github.com/commonsguy/cw-omnibus/tree/master/Gradle/HelloMultiProject

我在这里错过了什么?

最佳答案

这是由于您使用的语法所致。 Gradle 将 :libraries 解释为一个项目,它是您的“sdk”项目的父级。如果您希望这两个项目有效地直接位于根项目下,但仍存在于子目录中,您可以显式指定 projectDir

将您的 settings.gradle 更改为如下所示:

def String[] modules = ['some-sdk', 'another-sdk']

include modules

modules.each { name ->
    def p = findProject(":${name}")
    p.projectDir = new File("libraries/${name}")
}

关于android - 为什么gradle认为我的 'libraries'目录是一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536478/

相关文章:

java - Log4j:如何在单独的文件中按类过滤

gradle - 调用gradle脚本build.gradle并设置是否应该构建调试/发布风格并编写通用任务?

android - Android升级minSdkVersion有什么影响?

android - 如何制作插件数据APK?

java - 获取蓝牙设备服务 android

java - .NET 的企业库的 Java 等价物是什么?

java - 更改 hibernate.cfg.xml 运行时 - 第一部分

java - Gradle - 如何为 Maven 依赖项指定 javadoc 位置 jar 文件?

android - 为什么 Android Studio 3 默认使用 cmake 3.6.0?

android - 如何通过 ADB 杀死 android 中的持久系统进程?