Closed alfredkzhong closed 6 years ago
same question.不知道什么时候出官方的新版本编译脚本库?。
@alfredkzhong @HDHunter 我这边sample也是使用的AS3.0 + Gradle-4.1-all + 1.2.8的环境,没有遇到你描述的问题。如果还是遇到问题,麻烦贴一下完整的log,或者提供一下出错示例,多谢
@simpleton
找到问题了:是AndResGuard task找不到apk直接退出导致
问题过程:因为gradle插件 3.0.0开始无法使用outputFile,所以我直接使用了variant.assemble.doLast 来重定向apk的输出地址。刚好那时1.2.7又没法在3.0.0上使用,所以我当时就这么处理了。昨天接入1.2.8,因为没有任何提示,所以也没想起这事来。
建议:如果AndResGuard找不到目标apk,可否log出来,而不是直接terminate,方便我们排错。谢谢。
关键代码如下(有删减):
applicationVariants.all { variant ->
// gradle插件 3.0.0开始无法使用outputFile // variant.outputs.all { output -> // output.outputFile = new File(outputDirectory, fileName) // }
// gradle插件 3.0.0开始使用outputFileName outputFileName = fileName
variant.assemble.doLast { variant.outputs.each { output -> // 注释这句后,AndResGuard 1.2.8就正常 output.outputFile.renameTo(outputPath + "/" + output.outputFile.name) } } }
OK, 多谢详尽的解释。我改进下。PS: 你本身doLast做task的需求是更改什么的文件名呢? 如果是AndResGuard后的文件名, finalApkBackupPath 这个属性可能可以work
2017-11-13 19:01 GMT-08:00 alfredkzhong notifications@github.com:
@simpleton https://github.com/simpleton
找到问题了:是AndResGuard task找不到apk直接退出导致
问题过程:因为gradle插件 3.0.0开始无法使用outputFile,所以我直接使用了variant.assemble.doLast 来重定向apk的输出地址。刚好那时1.2.7又没法在3.0.0上使用,所以我当时就这么处理了。昨天接入1.2.8, 因为没有任何提示,所以也没想起这事来。
建议:如果AndResGuard找不到目标apk,可否log出来,而不是直接terminate,方便我们排错。谢谢。
关键代码如下(有删减):
applicationVariants.all { variant ->
// gradle插件 3.0.0开始无法使用outputFile // variant.outputs.all { output -> // output.outputFile = new File(outputDirectory, fileName) // }
// gradle插件 3.0.0开始使用outputFileName outputFileName = fileName
variant.assemble.doLast { variant.outputs.each { output -> // 注释这句后,AndResGuard 1.2.8就正常 output.outputFile.renameTo(outputPath + "/" + output.outputFile.name) } } }
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/shwenzhang/AndResGuard/issues/208#issuecomment-344131393, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbvYmyFLpZXBtfbdgzq_qNqhOK-eiuXks5s2QJtgaJpZM4QbjWL .
@simpleton finalApkBackupPath是可以的(亲测)。但是我们的打包流程涉及到好些个task,所以直接用的话改动比较多。可能会使用tasks.whenTaskAdded类似这样的,来挂在你的task之后。谢谢你及时的回复。
AS 3 + com.android.tools.build:gradle:2.3.3 + gradle-3.3-all.zip + AndResGuard 1.2.8 【Test OK】
AS 3 + com.android.tools.build:gradle:3.0.0 + gradle-4.1-all.zip + AndResGuard 1.2.8 【Build Failed】
Logs: -->AndResGuard starting! Current thread# id: 75, name: Task worker for ':' Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.