【问题标题】:Add a custom file into android AAR during compilation using build.gradle在编译期间使用 build.gradle 将自定义文件添加到 android AAR
【发布时间】:2022-01-14 09:25:37
【问题描述】:
我有一个构建 AAR 文件的 Android 库项目。我的 AAR 文件的结构是
- jni
- classes.jar
- AndroidManifest.xml
- 回复
- 元信息
- R.txt
现在我想以某种方式在模块级别 build.gradle 文件中将一个文件添加到与上述文件相同级别(最高级别)的生产 AAR 中。我看到a similar question for APK 尝试了该解决方案,但它在“classes.jar”中添加了文件,而不是在它旁边。一个工具aapt 可以做我想做的事,但它需要在编译期间在 gradle 文件中完成。可以吗?
【问题讨论】:
标签:
android
android-studio
gradle
【解决方案1】:
将以下代码 sn-p 添加到您的 android 库的 build.gradle.kts(您可以解释为 groovy,应该类似)。它使用新的 Variant API (androidComponents onVariants)。
BundlAar 是Zip 类型的任务,您可以参考Zip Doc 配置额外文件(from(...))或执行任何其他操作。
androidComponents {
onVariants { variant->
afterEvaluate {
project.tasks.named("bundle${variant.name.capitalize()}Aar").configure {
val t = this as com.android.build.gradle.tasks.BundleAar
t.from(file("test-file.txt"))
}
}
}
}