gpt4 book ai didi

android - 如何将 jar 依赖项添加到生成的 aar

转载 作者:行者123 更新时间:2023-12-03 04:30:36 26 4
gpt4 key购买 nike

首先我将解释我的项目结构

Test Application
|
| - Library Module
| |
| | - Core Library Module
| | Module 1
| |- Jar dependency 1
| |
| | Module 2
| |- Jar dependency 2

我有一个测试应用程序,我用它来测试一个库模块,该模块用于生成一个 aar 文件,该文件分发给其他应用程序。

库模块依赖于另一个模块,该模块包含我的库和其他库的一些核心功能。

问题是核心库有2个依赖项,2个jar文件。这些作为仅包含该 jar 的模块添加到项目中。

现在,当我为库模块生成 aar 文件时,这些 jar 文件不会添加到 aar。我不想将这些 jar 直接添加到客户端应用程序中,所以我唯一的解决方案是找到一种方法将它们添加到 aar 文件中。

我已经尝试使用 https://github.com/adwiv/android-fat-aar 添加它们,没有运气,因为它用于将常规模块添加到 aar 而不仅仅是 jar 文件。

有没有办法将这些 jar 添加到 aar 中? aar 在 jenkins 中生成并部署到 artifactory 中。

谢谢,

最佳答案

我找不到这样做的直接方法,但我会解释我的工作,以防其他人有同样的问题,也许这对你有用。我不会将此答案设置为正确的答案,因为也许其他人可以给我们一个更好的答案。

因为我无法直接添加 jars 文件,所以我创建了一个 gradle tak,它将我想要添加的 jars 中的所有文件复制到类目录中,然后将它们加入到里面的 class.jar 文件中.aar 文件。

这是毕业任务

tasks.whenTaskAdded { task ->
if (task.name == 'bundleRelease') {
task.dependsOn embedJavaJarsCustom
}
}

task embedJavaJarsCustom << {

def finalPath = '/Users/jenkins/workspace/MyProject/MyLibrary/libs'
// Collect list of all jar files
FileTree jars = fileTree(dir: finalPath, include: ['*.jar'])

println "Embedding jars : " + jars

// Explode all jar files to classes so that they can be proguarded
jars.visit {
FileVisitDetails element ->
println element.getName()
if (element.getName().equals('my.jar')
|| element.getName().equals('my2.jar') ) {
copy {

from(zipTree(element.file))
into("${getProject().getBuildDir()}/intermediates/classes/release/")
}
}

}
}

关于android - 如何将 jar 依赖项添加到生成的 aar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348155/

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