Android Gradle-应用安装后如何运行任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle-应用安装后如何运行任务相关的知识,希望对你有一定的参考价值。

通过Gradle安装应用程序后,我需要将一些文件复制到android应用程序文件夹(数据/数据/ ...)。 这必须在启动应用程序之前在每个调试版本中完成,因此我假设我可以找到可以在安装后(但在运行命令之前)执行的gradle任务。

[在执行类似操作时,它对于其他任务也可以正常工作

tasks.whenTaskAdded { task ->
    if (task.name == 'build') {
         task.dependsOn taskXYZ
    }
}

然后他们将在我的构建任务执行之前得到执行。但是,由于我需要在安装过程之后(以及应用程序运行之前)进行此操作,所以我希望这样的事情:

tasks.whenTaskAdded { task ->
    if (task.name.startsWith('install')){
       println ">>>>>>>>> " + task.name
       task.finalizedBy taskXYZ
    }

但是可悲的是,这不起作用。

在构建输出中,我可以看到它在一开始就执行了。

Executing tasks: [:app:assemblePlayStoreStagingDebug] in project /Users/...

> Configure project :app
###########################
TASK XYZ WAS EXECUTED HERE!
###########################
---> installPlayStoreStagingDebug

> Task :app:preBuild UP-TO-DATE
> Task :app:prePlayStoreStagingDebugBuild
> Task :app:compilePlayStoreStagingDebugAidl UP-TO-DATE
...
> Task :app:stripPlayStoreStagingDebugDebugSymbols UP-TO-DATE
> Task :app:packagePlayStoreStagingDebug
> Task :app:assemblePlayStoreStagingDebug

BUILD SUCCESSFUL in 6s
33 actionable tasks: 6 executed, 27 up-to-date

看来任务没有在预期的时间执行。我需要的是这样的:

  1. 任务生成
  2. 任务安装
  3. 任务XYZ
  4. 任务运行应用程序
  5. 但是我怎么能做到这一点?

这样的解决方案Android run Gradle task after app install似乎不适合安装任务。

通过Gradle安装应用程序后,我需要将一些文件复制到Android应用程序文件夹(数据/数据/ ...)。在启动应用程序之前,必须在每次调试构建时都执行此操作,因此我认为我可以...

答案

在gradle中,您可以使用mustRunAfter任务,这不会在任务之间创建依赖关系,而是会强制一个任务位于构建序列中其他任务的列表之后。

以上是关于Android Gradle-应用安装后如何运行任务的主要内容,如果未能解决你的问题,请参考以下文章

更新Google服务插件并且无法安装应用程序成功完成gradle后

Android Studio 4.1更新后应用程序的Gradle构建错误

如何使用Android Studio解决抖动中的gradle错误?

理解使用Gradle编译打包Android apk

我如何停止从安装应用程序开始的Gradle仪器测试运行?

如何使用 Gradle 构建系统让 PhoneGap 项目在 Android Studio 中运行