【问题标题】:Android Studio vs command line compile /w gradlewAndroid Studio vs 命令行编译 /w gradlew
【发布时间】:2017-09-30 09:51:48
【问题描述】:

here in the Android Studio docs 所述,可以使用 Android Studio 生成的 gradle 包装器从命令行构建 Android 应用程序。 Android Studio 中的命令行窗口正好显示了这一点,即调用 gradlew assembleDebug(或类似任务)。但是,在 macOS 上启动终端并使用该确切调用调用 gradle 包装器有时会产生其他结果,即 one is able to build from Android Studioor the command line 或两者(这是理想的,但不幸的是并非总是如此)。

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

【问题讨论】:

  • 你还有其他结果是什么意思??
  • 其他结果是在 android studio 中或通过命令行构建失败。

标签: android android-studio jenkins continuous-integration bamboo


【解决方案1】:

在项目的根目录中,您有gradlew.bat,这是您首先可以运行它的方式。如果你打开这个文件,你会看到构建代码和 Gradle 所做的一切。

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

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

【讨论】:

  • 感谢您的回答,但您写的大部分内容已经在我的问题中。从命令行调用 gradle 包装器与 android studio 所做的不同。很可能是由于工作室或类似的东西设置了一些环境变量。我想知道究竟是什么能够重现相同的构建。查看 SO 上的链接问题,了解其他也有这些问题的人。
  • @Lennert 没有区别。它使用gradlewgradlew.bat 将Gradle 编译为Android 应用程序。没有区别,如果有区别,那就是它如何按顺序实际编译它。先构建然后生成APK,然后安装它。如果你不能从命令行正确编译,你就遗漏了一些东西
  • 使用与 Android Studio 在其终端窗口中显示的完全相同的命令时,即使在 Android Studio 中运行,命令行构建也无法运行。我不想详细说明它失败的原因,因为实际的错误不是我想要解决的。从我的问题的链接中可以看出,我不是唯一一个遇到这些问题的人,很多人遇到同样的问题,即命令行和使用完全相同的 gradle 命令(和包装器)构建的 Android Studio 之间的不一致。
  • @Lennert - 你发现不同了吗?我看到来自 2 个不同构建的不同行为,即 Android Studio 构建和命令行构建。
  • @RaviKanasagra 抱歉,回复晚了,我没弄明白。刚刚修复了我的错误并继续前进。希望有时间更深入地挖掘,但显然没有很多资源可以跟进。你找到解决办法了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
相关资源
最近更新 更多