我有一个系统,用户输入后,我调用os.system("./gradlew assembleDebug ")
来生成APK。在此之后,定义了一个函数来下载APK,该函数将被调用。这一切在当地环境下都很有效。但是在我的awsec2实例上,前一个调用不是阻塞调用,即使在生成apk的过程中也会调用download apk函数,这显然会失败。我在我的EC3实例上使用ngnix。在
我想在apk成功生成后调用python脚本。在
这是我的生成.gradle文件。在
task generateSources << {
def script = "python downloadAPK.py".execute()
}
gradle.projectsEvaluated {
compileJava.dependsOn(generateSources)
}
我收到此错误错误:(84,0)在项目app上找不到属性“compileJava”。在
不管怎样,我认为这不会帮助我,因为我不确定这是否会在APK生成之后运行。所以我认为在这里可以做两件事:
请告诉我哪一个是更好的方法,以及如何去做。在
这实际上是groovy的一个技巧。
GString#execute()
默认情况下不阻塞。但是,我们可以通过等待exitValue使其阻塞。在所以如果你改变了你的代码就可以工作了
等待
^{pr2}$Process
结束后再让任务完成然后,当您构建时,只需运行
gradlew generateSources
,并且由于该任务依赖于先运行的assembleDebug
,所以apk将始终在任务运行之前生成。这也可能意味着Process#waitFor
是没有意义的,因为它是在生成APK之后执行的相关问题 更多 >
编程相关推荐