Android Studio 与命令行编译 /w gradlew

Len*_*ert 5 continuous-integration android bamboo jenkins android-studio

正如Android Studio 文档 中所述,可以使用 Android Studio 生成的 gradle 包装器从命令行构建 Android 应用程序。Android Studio 中的命令行窗口准确地显示了这一点,即调用 gradlew assembleDebug (或类似的任务)。然而,在 macOS 上启动终端并使用该确切调用调用 gradle 包装器有时会产生其他结果,即可以从 Android Studio 或命令行或两者都进行构建是理想的情况,但不幸的是并不总是如此)。

谁能解释 Android Studio IDE 为其环境设置了哪些其他设置以及在哪里可以找到它们、如何在 CI 环境(例如 Jenkins、Bamboo 等)中轻松重现这些设置以及如何将这些设置一致地存储在一个Android 项目中的 VCS。

Zoe*_*Zoe 1

在项目的根目录中gradlew.bat,您可以使用它来运行它。如果打开此文件,您会看到构建代码以及 Gradle 所做的所有其他操作。

无论您是从命令行还是从 Android Studio 构建,gradlew.bat都会使用该文件。gradlew因此,无论是来自命令行还是 Android Studio 的集成工具,使用该命令执行的构建和其他操作都使用相同的文件。

gradlew如果您也愿意,您可以打开项目根目录中的文件gradlew.bat并查看它是如何工作的,尽管这些文件通常由 Android Studio 自动生成(也可以进行您自己的配置,尽管很少有对此的需要)。为了包含在 vcs 中,请确保文件未在 .gitnore 中列出(或您拥有的任何 vcs 忽略扩展名)

  • 当使用与 Android Studio 在其终端窗口中显示的完全相同的命令时,命令行构建不起作用,即使它在 Android Studio 中工作。我不想详细说明它失败的原因,因为实际的错误不是我想要解决的问题。我不是唯一一个遇到这些问题的人,从我的问题的链接中可以看出,很多人都遇到了同样的问题,即命令行和使用完全相同的 gradle 命令(和包装器)的 Android Studio 构建之间不一致。 (3认同)