我目前有一系列包含java,aidl,assets,resources,jni以及manifest和proguard文件的组件来支持这些组件。
我想提供包含这些组件的多种不同组合的AAR文件。
我希望能够在组装时调试每个组件中的代码(我认为这意味着制作一个包含所有组件源文件的项目,因为AAR爆炸不会发布/调试变体。)< / p>
我想将实验性gradle插件用于NDK部件。
我的第一个黑客看起来像:
model {
android {
// ... stuff
sources {
main {
def mySourceSet = ["../../sourceTree/client",
"../../sourceTree/instrumentation",
"../../sourceTree/engine"]
java {
source {
srcDirs = mySourceSet } } }
aidl {
source {
srcDirs = mySourceSet } } }
resources {
source {
srcDirs = mySourceSet } } }
assets {
source {
srcDirs = mySourceSet } } }
manifest {
source {
srcDirs = mySourceSet } } }
jniLibs {
source {
srcDirs = mySourceSet } } }
jni {
source {
srcDirs = mySourceSet } } }
}
}
}
}
java类按我的意愿组合。 aidl文件按我的意愿组合。
其他所有内容都不存在(清单没有合并,资源/资产选择java类,并且仍然使用以前版本系统中的旧.so。)
进入不同的规则,看起来mySourceSet需要重复才能为非java / aidl文件做正确的事情,以使格式正确选择(或排除它们)。我已经一直在尝试(没有成功)看看我能用+ =符号做什么,如果我可以将它们移动到sourceTree中的gradle设置/配置片段,包含它,并让它修改srcDirs。
我喜欢其中一种工作:
model { android { sources { main { aidl { source { srcDirs += "../../sourceTree/instrumentation" } } } } } }
model.android.sources.main.aidl.source << { srcDirs += "../../sourceTree/instrumentation" }
model.android << { sources { main { aidl { source { srcDirs += "../../sourceTree/instrumentation" } } } } }
但他们失败了各种各样的&#34;你不能这样做&#34;错误。
有没有办法在android {model {}}块之外设置srcDirs?
有关如何正确合并资产/资源/清单的任何提示,给出应该查看的顶级目录列表?