Android Studio完成构建后如何获得通知?

时间:2018-11-10 12:27:44

标签: android android-studio gradle notifications android-gradle

我想在Gadle完成构建应用程序后收到通知,

请注意,除了Android Studio中使用的常用语句外,我对Gradle并不熟悉,但很高兴我能学到一些东西。

到目前为止,我所见过的最好的方法似乎是使用announcebuild-announcements插件,如this link中所述。不幸的是,它一般是针对Gradle的,我看不到如何使其适应Android Studio的构建系统。顺便说一句,我在Windows上并已安装Snarl,但不知道如何使其与Android Studio一起使用。

与本教程中一样,我将两个插件都应用于了我的app / build.gradle。

我首先尝试改编this SO question中的代码。由于没有真正的信息,因此我将这些行写在gradle文件的根目录。

assembleRelease.doLast {
    announce.local.send "Gradle Info Task", 'Running'
    println gradle.gradleVersion
    announce.announce("helloWorld completed!", "local")
}

但是,Gradle甚至无法同步,并引发以下错误:

  

无法获得类型为org.gradle.api.Project的项目':myApplication'的未知属性'assembleRelease'。

然后,我尝试创建一个像this other SO question所示的任务:

task notification() {
        announce.local.send "Gradle Info Task", 'Running'
        println gradle.gradleVersion
        announce.announce("helloWorld completed!", "local")
}
build.finalizedBy(notification) //

这不会引发任何错误,但不会显示任何通知。

为什么我的尝试失败了?我如何实现我的目标?

如果可能的话,非常欢迎您提供有关如何自行搜索该信息的信息。

2 个答案:

答案 0 :(得分:1)

实现所需需求的最简单方法:

在Android Studio中,进入Preferences > Appearance & Behavior > Notifications,转到Gradle Build(记录)并选中“朗读”框。

这将说明Gradle构建在完成构建后的x分钟和x秒内完成。

答案 1 :(得分:0)

您需要添加插件announcebuild announcements。 支持以下目的地:Twitternotify-send(Ubuntu),Snarl(Windows),Growl(macOS)。这些是必需的插件:

rootProject {
    apply plugin: "announce"
    apply plugin: 'build-announcements'
}

并完成构建过程(请参见supported notification services

// it finalizes :assemble
task finalizeBuild {
    doLast {
        println(":finalizeBuild > doLast")
        announce.announce("task :assemble completed!", "snarl")
    }
}

tasks.whenTaskAdded { task ->
    if (task.name == "assembleDebug") {
        task.finalizedBy finalizeBuild
    } else if (task.name == "assembleRelease") {
        task.finalizedBy finalizeBuild
    }
}