gpt4 book ai didi

android - 如何将 apklib 转换为 aar

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:52 25 4
gpt4 key购买 nike

由于 Gradle 不支持 apklib 依赖项,如何从 apklib 依赖项迁移到 aar 依赖项?是否可以手动或自动将 apklib 依赖项转换为 aar?如果是 - 如何,如果不是 - 为什么不?

在这个问题中,我假设我没有 apklib 的原始项目,而是文件本身。

最佳答案

apklib 不包含目标文件,只包含源文件,因此它可以包含在任何 项目中的唯一方法是重新编译它。根据一些文档,您可以阅读:

Android dependencies : apklib vs aar fileshttps://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau

The apklib format was invented as a way to share Android code+resources. It’s essentially a zipped up Android library project, which was already the status quo for code+resource sharing.

您可以在 Chris Broadfoot 的帖子中看到,生成 apklib 的任务只是压缩 AndroidManifest.xml 文件以及 srcres目录:

task apklib(type: Zip) {
appendix = extension = 'apklib'

from 'AndroidManifest.xml'
into('res') {
from 'res'
}
into('src') {
from 'src'
}
}

请注意,他的帖子是关于从 Gradle 创建一个 apklib,这是一件有点奇怪的事情,但它提供了一个关于其中一个事情的结构的非常清晰的想法。

好消息是,当 Eclipse 是主要 IDE 时,这是“标准”Android 项目结构,Android Studio 知道如何导入看起来像这样的模块。所以请按照以下步骤操作:

  1. 将您的 apklib 解压缩到一个临时目录中。它是 zip 格式,所以像 unzip library.apklib 这样的东西应该可以工作。

  2. 查看解压后的内容。您应该会看到一个包含 AndroidManifest.xmlsrcres 文件夹的目录。

  3. 在 Android Studio 中的现有项目中,选择"file">“导入模块”并将其指向第 2 步中的目录。

  4. Android Studio 应通过将文件复制到项目中的新模块来管理导入,将它们安排在其首选目录结构中,并将为该模块添加一个 build.gradle 文件.

  5. 此时您已启动并运行。如果您确实需要 .aar 文件,请检查您的新模块是否设置为库模块或应用程序模块。在它的 build.gradle 中,如果你有 apply plugin: 'com.android.library' 那么它就是一个库模块,Gradle 会生成一个 。 aar 作为构建的一部分:成功构建后它将位于 build/outputs/aar 目录中。

  6. 如果您的模块作为应用程序模块而非库导入(apply plugin: 'com.android.application',则更改该apply plugin 语句,您可能还需要从构建文件中删除 applicationId 语句。现在它应该作为库编译并生成 .aar

  7. 编码愉快!

关于android - 如何将 apklib 转换为 aar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924504/

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