如何改进将输出APK从Android项目复制到新文件夹的任务?
因此,我想创建一个构建后钩子,将编译后的APK文件复制到一个新文件夹中,并给它一个包含版本代码的名称。到目前为止,我得到的是:如何改进将输出APK从Android项目复制到新文件夹的任务?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,因此,我想创建一个构建后钩子,将编译后的APK文件复制到一个新文件夹中,并给它一个包含版本代码的名称。到目前为止,我得到的是: task copyToPublishFolderDebug(type: Copy, dependsOn: assembleDebug ) { def targetFile = "MyApp-debug-" + android.defaultConfig.versionCode + ".apk" from ('build/outputs/apk/MyApp
task copyToPublishFolderDebug(type: Copy, dependsOn: assembleDebug ) {
def targetFile = "MyApp-debug-" + android.defaultConfig.versionCode + ".apk"
from ('build/outputs/apk/MyApp-debug.apk') {
rename 'MyApp-debug.apk', targetFileName
}
into '../build/publish/'
}
assembleDebug.finalizedBy copyToPublishFolderDebug
这是可行的,但我认为可以改进
- 理想的解决方案不是硬编码输入文件名,而是通过管道将输出从
传输到此任务。(相关:)问题是assembleDebug
没有任何输出<但是,code>zipalignDebug确实存在,但是任务在评估阶段不存在,因此从zipalignDebug编写assembleDebug
不会编译。有办法解决这个问题吗?我可以在
事后评估阶段定义任务吗
- 我必须将此任务复制粘贴到发布版本(以及我创建的任何其他版本类型)的90%相同的任务中。有没有办法用简单的方法把那东西弄干
edit2:了解如何重命名,使其不再成为问题看起来您可以使用外部属性:
ext.output = "Initial Value"
task firstTask() << {
output = "Output";
}
task secondTask(dependsOn: firstTask) << {
println output;
}
ext.output=“初始值”
task firstTask()所选答案如何解决您的问题?