【问题标题】:Android Studio shell script build configuration runs on its own but not as a pre-step on WindowsAndroid Studio shell 脚本构建配置独立运行,但不作为 Windows 上的前置步骤
【发布时间】:2021-12-18 23:39:42
【问题描述】:

我正在尝试在 Android Studio 中运行 Flutter 应用程序,但在此之前,我需要将一些文件从一个目录复制到另一个目录。所以我创建了以下copy_webenv.cmd Windows 脚本:

xcopy webenv\%1  web\ /E/Y

然后我在 Android Studio 中创建了一个 Shell Script 构建配置,它使用 dev 参数运行此脚本:

当我自己运行这个构建配置时,它可以完美运行:

(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\sarbogast\dev\buzzwordbingo>C:\Users\sarbogast\dev\buzzwordbingo\copy_webenv.cmd dev

C:\Users\sarbogast\dev\buzzwordbingo>xcopy webenv\dev  web\ /E/Y
webenv\dev\favicon.png
webenv\dev\index.html
webenv\dev\icons\Icon-192.png
webenv\dev\icons\Icon-512.png
4 File(s) copied

但是当我尝试将此构建配置添加到我的 Flutter 构建配置的“启动前”步骤中时:

并运行此构建配置,我收到以下错误:

Error running 'copy webenv dev'
Executable is not specified

我在任何地方都看不到任何可执行字段。

【问题讨论】:

    标签: android-studio batch-file flutter-web


    【解决方案1】:

    看起来这是 android studio 中的一个错误。 要解决此问题,您可以改用 gradle 任务或使用外部工具。

    没有 Gradle 任务

    如果您的用例不能使用 gradle 任务,那么您可以在 Before Launch 选项中使用 Run External tool 选项。

    .

    然后在工具配置中,您可以使用cmd 作为程序,/c copy_webenv.cmd dev 作为参数。

    使用 Gradle 任务

    如果您可以处理 gradle 任务,那么您需要将其添加到您的 build.gradle

    task runCopyScript(type: Exec) {
        commandLine 'cmd', '/c', 'copy_webenv.cmd', 'dev'
    }
    

    然后当gradle被同步后,你可以在android studio的编辑器中点击它旁边的播放按钮来运行它,这样它就被添加为运行配置了。

    然后您可以将该配置添加为“启动前”。

    一些旁注:

    • 为此使用gradle copy 任务实际上会更好。这样一来,它将立即与平台无关,并且 gradle 也可以进行优化。
    • 实际上最好在构建系统中使用 gradle 挂钩,如this answer 所示。这样一来,其他人在第一次检查项目时会更容易,并且还可以简化使用某些 CI 系统构建的工作。
    • 你也可以使用build variants

    【讨论】:

    • 我不确定如何使用它,因为我的项目是 Flutter 项目,而我唯一拥有的 build.gradle 是嵌入在 Android 子项目中的那个。无论我是运行 iOS 还是 Android 应用程序,我都需要先运行此任务。事实上,它需要与平台无关,并让我通过命令行参数自定义副本。
    • 更新了答案,但是是的,因为它是您的 ide 和 ad cmd 命令中的配置,它不会与构建平台无关。
    • 外部工具解决方法正是我所需要的
    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2021-11-01
    • 2017-05-12
    相关资源
    最近更新 更多