nie*_*umi 12 android build gradle
我有一个Android库,它生成一个debug.aar和一个release.aar,我需要将release.aar复制到另一个文件夹作为对项目其他部分的引用.
我现在所做的是在这个Android库build.gradle我定义了一个任务:
task copyAARToCommonLibs(type: Copy) {
from('../build/outputs/aar') {
include '*-release.arr'
}
into '../SomeSampleApps/libs'
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在生成arr之后运行此任务,我假设它是assembleRelease阶段,所以我尝试在此build.gradle中执行此操作
assembleRelease.doLast{
copyAARToCommonLibs
}
Run Code Online (Sandbox Code Playgroud)
我使用构建整个项目
gradle build
Run Code Online (Sandbox Code Playgroud)
但是这项任务在整个过程的最初阶段就开始了.
我也试过这个:
applicationVariants.all { variant ->
variant.assemble.doLast {
copyAARToCommonLibs
}
}
Run Code Online (Sandbox Code Playgroud)
在android {}属性里面(我猜这就是它的名字?)运行gradle build,得到了这个错误:找不到属性'applicationVariants'
然后我遇到了这个片段:
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyAARToCommonLibs }
Run Code Online (Sandbox Code Playgroud)
但似乎这使得任务在编译后运行,我不知道如何修改它以在汇编后运行.
有人可以在我做错的地方纠正我,如何在生成.arr文件后让这个副本任务工作?
Opa*_*pal 19
看来这finalizedBy可能会有所帮助.
assembleRelease.finalizedBy(copyAARToCommonLibs)
Run Code Online (Sandbox Code Playgroud)
请注意,您不会通过以下方式定义依赖关系:
assembleRelease.doLast {
copyAARToCommonLibs
}
Run Code Online (Sandbox Code Playgroud)
实际上..它什么都没做.您需要执行任务:
assembleRelease.doLast {
copyAARToCommonLibs.execute()
}
Run Code Online (Sandbox Code Playgroud)
但是劝阻以下列方式执行任务并且非常糟糕.
你也可以尝试:
assembleRelease.doLast {
copy {
from('../build/outputs/aar') {
include '*-release.aar'
}
into '../AscendonSDKSamples/libs'
}
}
Run Code Online (Sandbox Code Playgroud)
我使用了 finalizedBy() 但必须将它包含在 afterEvaluate 中...
afterEvaluate {
if (gradle.startParameter.taskNames.contains(":app:assembleFatReleaseInternal")) {
play.enabled = true
play.commit = true
play.track = "internal"
play.releaseStatus = "completed"
play.releaseName = versionName
generateFatReleaseInternalBuildConfig.dependsOn set_build_date
assembleFatReleaseInternal.finalizedBy(uploadCrashlyticsSymbolFileFatReleaseInternal)
uploadCrashlyticsSymbolFileFatReleaseInternal.finalizedBy(publishFatReleaseInternal)
}
}
Run Code Online (Sandbox Code Playgroud)
这对于自动将原生符号上传到 Fabric / Crashlytics 和其他东西(例如自动 Play 商店发布)非常有效。
| 归档时间: |
|
| 查看次数: |
13382 次 |
| 最近记录: |