当前位置: 首页 > 面试题库 >

Android Gradle将外部库和嵌套的外部库添加到项目

壤驷心思
2023-03-14
问题内容

如何将外部库和嵌套的外部库添加到android项目?

我的项目结构(不允许更改)

  • 应用/
    • App1 /
    • build.gradle
    • settings.gradle
    • 图书馆/
    • 图书馆1 /
      • 建立等级
      • settings.gradle
    • 图书馆2 /
      • 建立等级
      • settings.gradle
    • 图书馆3 /
      • 建立等级
      • settings.gradle
    • 图书馆4 /
      • 建立等级
      • settings.gradle

应用1

App1 / build.gradle

buildscript {
    ...
}

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':..:libraries:library1')
    compile project(':..:libraries:library2')
    compile project(':..:libraries:library3')
    compile project(':..:libraries:library4')
}

android {
    ...
}

App1不直接依赖library3library4,但是,如果我不在build.gradle文件和settings.gradle文件的依赖项中包括它们,它将抱怨。所以,我让他们加入只是为了阻止它抱怨。

App1 / settings.gradle

include ':'
include '..:libraries:library1'
include '..:libraries:library2'
include '..:libraries:library3'
include '..:libraries:library4'

图书馆1

library1 / build.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':..:library3')
    compile project(':..:library4')
}

android {
    ...
}

library1 / settings.gradle

include ':'
include '..:library3'
include '..:library4'

图书馆2..4

library2..4 / build.gradle

buildscript {
    ...
}

apply plugin: 'android-library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    ...
}

library2..4 / settings.gradle

include ':'

当试图gradlew clean buildApp1我得到以下错误:

FAILURE: Build failed with an exception.

* Where:
Build file '/home/user/projects/branches/branch1/Apps/libraries/library1/build.gradle' line: 15

* What went wrong:
A problem occurred evaluating project ':..:library:library1'.
> Project with path ':..:library3' could not be found in project ':..:library:library1'.

线15 compile project(':..:library3')library1/build.gradle的文件。

如何将外部库和嵌套的外部库添加到android项目?


问题答案:

在顶级settings.gradle(App1 / settings.gradle)文件中,对每个库执行类似的操作

include ':library1'   
include ':library2'   
include ':library3'   
include ':library4'

project(':library1').projectDir = new File(rootProject.projectDir, '../libraries/library1')
project(':library2').projectDir = new File(rootProject.projectDir, '../libraries/library2')
project(':library3').projectDir = new File(rootProject.projectDir, '../libraries/library3')
project(':library4').projectDir = new File(rootProject.projectDir, '../libraries/library4')

删除其他settings.gradle文件,您不需要它们

然后在每个构建脚本中,您只需要使用

compile project (':library1')
compile project (':library2')
etc....

如上所述,只需在根项目(App1)中使用单个settings.gradle文件。

然后从您的App1文件夹运行gradlew clean :library1:build以验证library1是否正确构建。

至于有关App1抱怨缺少库3和4的问题,您确定应用程序中没有直接引用这些库的代码,或者在编译library1时找不到这些库。分别构建每个库以验证它们都可以正常构建。



 类似资料:
  • 我在我的Minecraft客户端中有一个函数,它需要一个外部库。我在IDE中添加了它,并将其添加到lib/文件夹中,但它没有帮助。有人对此有经验吗?它们是两个罐子。

  • *用Winrar打开。jar文件,转到/lib文件夹,手动选择my文件,然后确保选择Winrar为您提供压缩选项的左下角的No Compression选项,以防您在Google上找到该选项,但没有人回答。

  • 我刚刚下载了Android Studio 1.0.1,这是新的项目结构 我想导入我有3个外部库,我想使用。 build.gradle已经对此进行了定义 但是当我在libs文件夹中复制我的库时,我的项目仍然不能识别它,我如何使用libs文件夹,并在这个文件夹中复制和使用我的库?有帮助吗? 编辑:这是一个简单的问题,如何像我们在eclipse中所做的那样在Android Studio中添加库,例如我有

  • 我正在尝试将Jsoup库添加到我的项目中,但是我在程序中得到一个错误,说“无法解析符号'Jsoup'”。下面是我所做的,但不起作用。

  • 我有一个示例项目,设置如下: 其中“测试项目”依赖于“测试库”,而最后一个依赖于“纯Java库”,编译该项目并启动此设置工作正常。 我现在正在考虑导入以前的Eclipse工作区,并与Android studio一起工作,问题是项目设置不同,我希望保持这种方式。 我尝试了很多配置,但没有找到一种方法来引用父文件夹范围之外的项目(在示例中为'root')。 在许多平台/模块中,您可以使用“..”但这对

  • 我已经开始使用PyCharm IDE,但是我不知道如何在那里管理外部库。例如,PyCharm看不到< code>matplotlib。在PyCharm的文件管理器中,我清楚地看到了外部库的列表,没有< code>matplotlib。但是,我已经安装了它,并且知道它的位置。 如何将此库添加到PyCharm环境?