android - 在Android Studio中成功 "Rebuild Project"后执行Python脚本

标签 android python gradle android-gradle-plugin

我需要将新生成的 apk 复制到远程机器上,所以目前我在桌面上有一个图标,它会触发 Python 脚本。

我希望这个脚本在重建项目成功后被 Android Studio 自动调用。

我怎样才能做到这一点?

我找到了一段代码,特别是:

task generateSources << {
    def script = "python downloadAPK.py".execute()
}

gradle.projectsEvaluated {
    compileJava.dependsOn(generateSources)
}

但是当我在应用程序的 build.gradle 底部插入它时,Android Studio 会提示“找不到方法 leftShift()...”

最佳答案

这不再适用于 Android Studio 3.5

在 app Module 的 build.gradle 文件中添加以下内容:

android {
    ...        
    defaultConfig {
      ...
    }    
    buildTypes {
      ...
    }    
    afterEvaluate {
        task upload_apk() {
            doLast {
                def do_upload = true
                if (project.hasProperty('android.optional.compilation')) {
                    if (project.property('android.optional.compilation').toString().contains("INSTANT_DEV")) {
                        do_upload = false
                    }
                }
                if (do_upload) {
                  println('\nUploading APK...')
                  exec {
                      workingDir "C:\\Users\Username\Desktop\\tools"
                      executable "python"
                      args "C:\\Users\Username\Desktop\\tools\\upload_apk.py"
                  }
                }
                else {
                    println 'Will not upload the APK since Instant Run has not modified it'
                }
            }
        }
        assembleDebug.finalizedBy(upload_apk)
    }
}

关于android - 在Android Studio中成功 "Rebuild Project"后执行Python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918380/

相关文章:

安卓图标没有出现

android - 动画: How should I translate an ImageView out of/into visibility on the screen

python - Python 中的 __weakref__ 到底是什么?

cordova - Ionic Build中的错误:命令的错误代码1:带有args的cmd:

validation - SONARQUBE - 项目验证失败,%project 已经是项目的一部分

java - 实现相同接口(interface)的 DTO 和实体

android - 当应用程序进入后台时如何检测以前的 Activity

python set union 操作在命名元组中表现不佳

python - HoughLine 修改后的代码会检测到简单的图像,但不会检测到复杂的图像

go - golang 应用程序的 Makefile 到 gradle 转换