我正在构建一个库,我希望我的示例应用程序直接从我的库的发行版本中使用AAR。这使我们能够测试示例应用程序中库模块的保护。
:my-libary
:sample-app
在:sample-app
的{{1}}中:
build.gradle
问题在于,repositories {
flatDir {
"../my-libary/build/outputs/aar"
}
}
dependencies {
// we've added a flavor named "binary" to support this
binaryImplementation(name: "my-libary-release", ext: 'aar')
}
文件在运行my-libary-release.aar
之前不存在。
以下hacky解决方法有效,但在:my-library:assembleRelease
时失败。
android.enableJetifier=true
我猜想tasks.whenTaskAdded { task ->
def taskName = task.name.toLowerCase()
if (taskName.toLowerCase().contains("binary")) {
// Prepare libs as binaries
task.dependsOn ":my-library:assembleRelease"
}
}
会导致示例应用程序的依赖关系在构建android.enableJetifier=true
之前过早解决,从而导致构建失败。这是失败的地方:
.aar
是否有更好的方法直接依赖于从gradle任务创建的动态生成的AAR文件作为依赖项?