由于 Gradle 不支持apklib
依赖项如何迁移apklib
依赖于aar
依赖关系?是否可以手动或自动转换apklib
依赖于aar
?如果是 - 如何,如果否 - 为什么不呢?
在这个问题中,我假设我没有原始项目apklib
,而是文件本身。
apklib 不包含目标文件,仅包含源文件,因此它可以包含在any项目是通过重新编译它。根据一些文档,您可以阅读:
Android 依赖项:apklib 与 aar 文件 and https://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau
apklib 格式的发明是为了共享 Android 代码+资源。它本质上是一个压缩的Android库项目,这已经是代码+资源共享的现状。
您可以在 Chris Broadfoot 的帖子中看到,生成 apklib 的任务只是将AndroidManifest.xml
文件和src
and res
目录:
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 知道如何导入如下所示的模块。因此请按照以下步骤操作:
将 apklib 解压到临时目录中。它是 zip 格式,所以类似unzip library.apklib
应该管用。
看看拆封的是什么。您应该看到一个包含以下内容的目录AndroidManifest.xml
, src
, and res
文件夹。
在 Android Studio 的现有项目中,选择“文件”>“导入模块”并将其指向步骤 2 中的目录。
Android Studio 应该通过将文件复制到新模块中的项目中来管理导入,将它们排列在其首选目录结构中,并添加一个build.gradle
模块的文件。
此时您已启动并运行。如果你真的想要.aar
文件,然后检查您的新模块是否设置为库模块或应用程序模块。在其build.gradle
,如果你有apply plugin: 'com.android.library'
那么它是一个库模块,Gradle 会生成一个.aar
作为构建的一部分:它将位于build/outputs/aar
构建成功后的目录。
如果您的模块作为应用程序模块而不是库导入(apply plugin: 'com.android.application'
,然后改变它apply plugin
声明,并且您可能还需要删除applicationId
构建文件中的语句。现在它应该编译为库并生成.aar
.
快乐编码!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)