gpt4 book ai didi

android - 在 Android Studio (v0.8.9) 中引用外部库项目

转载 作者:行者123 更新时间:2023-11-29 15:58:58 25 4
gpt4 key购买 nike

我有一个自定义库需要在大约 10 个项目中引用。在 Eclipse 中一切正常,但我想将它们迁移到 Android Studio 以利用构建系统。我已经检查过了

Android studio add external project to build.gradle

How to share a single library source across multiple projects

以及 Gradleware 中的一些其他链接和文档,但我无法编译我的项目。

我的文件结构是这样的:

+项目

|+图书馆项目

|+---工作区

|+------projectSrc

|

|+项目0

|+---工作空间

|+------projectSrc0

|

|+项目1

|+---工作空间

|+------projectSrc1

..

|+项目N

|+---工作空间

|+------projectSrcN

每个项目都包含文档、设计文件等...因此将 src 放在同一根文件夹中并不方便。

在我的“project1”中,我使用的settings.gradle 文件:

include ':module-custom-lib'
project(':module-custom-lib').projectDir = new File(settingsDir, '../../../libraryProject/workspace/projectSrc')

在我的 build.gradle 文件中,我添加的依赖项部分:

dependencies {
compile project(':..:..:..:libraryProject:workspace:projectSrc')
....
}

但我收到一条错误消息,提示找不到该项目。

我还使用了以下方法:

def customLib = file('../../../libraryProject/workspace/projectSrc')
settings.createProjectDescriptor(rootProjectDescriptor, 'module-custom-lib', customLib)
include ':module-custom-lib'

然后在build.gradle

dependencies {
compile project(':module-custom-lib')
....
}

请帮忙。感谢您的宝贵时间。

编辑:我设法通过在项目目录中添加模块 app 作为后缀使其工作。

include ':module-custom-lib'
project(':module-custom-lib').projectDir = new File(settingsDir, '../../../libraryProject/workspace/projectSrc/app')

现在库成员可以完美解析,但是无法解析项目的'R'资源类。所以如果我这样做:

setContentView(R.layout.main);

找不到该资源。清理和重建项目并不能解决问题。

编辑 2: 显然, list 合并存在问题,因为一旦我调整了两个项目的 minSdk 和 targetSdk,问题就解决了。之前的解决方案完美运行。

最佳答案

您的第一次尝试具有更简单的语法,应该可以。您的 settings.gradle 文件看起来没问题:

include ':module-custom-lib'
project(':module-custom-lib').projectDir = new File(settingsDir, '../../../libraryProject/workspace/projectSrc')

虽然您应该谨慎地在其中包含相对路径——Android Studio 可能不会使用与您从命令行执行的构建相同的工作目录,因此引用与 rootDir 相关的内容可能会有所帮助缓解问题。

在模块构建文件的 dependencies block 中,您需要像在 settings.gradle 中一样引用模块,因此您可以使用类似这个:

dependencies {
compile project(':module-custom-lib')
}

dependencies block 中,您正在使用 Gradle 的项目命名空间链接到项目,并且由于您已经明确设置了库模块的根目录,因此您无需尝试在此处的文件系统中找到它。 :..:..:.. 语法无论如何都无法引用项目根目录之外的模块,就像这个模块一样。

关于android - 在 Android Studio (v0.8.9) 中引用外部库项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com