我正在尝试将我自己的库导入到 Android Studio 中的一个应用程序中。我在几个地方看到了基本上相当于:
1 将文件移动到项目目录中的库文件夹中。
2 将 include 'projectName:folderName:libraryName
添加到您的 settings.gradle 文件
3 将依赖项下的 compile project('folderName:libraryName')
添加到项目级 build.gradle 文件
如果我要导入一个模块,这对我有用...我认为它是一个模块。我仍在尝试弄清楚 gradle。我的库结构如下所示:
ProjectName
Module1
Classes
Module2
Classes2
如果我以这种方式单独导入 Module1 或 Module2(其中 Module1 是上面说明中我的“libraryName”),它们将起作用。但如果我尝试将整个项目作为一个库导入,则会出现错误。
我做错了什么? 我想导入整个项目,因为我希望它有许多模块。还有另一种/更好的方法吗?我有什么误解吗?
更新:
根据 @ScottBarta 的说明,我合并了 settings.gradle 文件。 这似乎在我的主项目中有效,因为 gradle 同步已正确完成,但我还没有准备好运行该项目。 所以我创建了一个测试项目并使用相同的步骤导入了库。 这次我收到错误:
Gradle 'Tester' project refresh failed:
Build script error, unsupported Gradle DSL method found. 'compile()'!
据我所知,这两个项目中的文件是等效的:
主要:
include ':Eed'
include ':Eed:libraries:Overt:Visible'
include ':Eed:libraries:Overt:Control'
测试:
include ':app'
include ':app:libraries:Overt:Visible'
include ':app:libraries:Overt:Control'
主要:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project('libraries:Overt:Visible')
compile project('libraries:Overt:Control')
}
测试
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
complie project('libraries:Overt:Visible')
complie project('libraries:Overt:Control')
}
这是一个 screenshot Tester 项目中的文件结构。
最佳答案
每个项目只能有一个 settings.gradle 文件,因此如果您有一个带有自己的 settings.gradle 的多模块库,则不能将它包含在一个 include
语句中。您需要将库的 settings.gradle 合并到您要包含它的项目中。
进行合并时,请确保合并的 settings.gradle 中的所有 include
语句都具有合理的路径,可以相对于项目根目录定位其库。另请记住,settings.gradle 文件中指定的路径必须与 dependency
block 中的路径匹配。所以如果你有这个:
include ':app'
include ':app:libraries:Overt:Visible'
include ':app:libraries:Overt:Control'
你需要这个:
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':app:libraries:Overt:Visible')
compile project(':app:libraries:Overt:Control')
}
在您在问题中发布的构建脚本中,存在一个拼写错误:它显示的是 complie
而不是 compile
。如果这是您的构建脚本中的拼写错误,而不仅仅是您的问题中的拼写错误,那么这将是一个问题。
关于java - 包括整个项目作为库 android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236493/