0

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

谁可以解释Android Studio IDE为其环境设置的其他设置以及在哪里可以找到它们,如何在CI环境中轻松地再现这些设置(例如Jenkins,Bamboo,...)以及如何持续存储Android项目中的VCS中的这些设置。

+0

这是什么意思,你有其他结果? –

+0

其他结果是在android studio或通过命令行构建失败。 – Lennert

回答

0

在项目的根目录中,您有gradlew.bat,这是您如何运行的第一步。如果你打开这个文件,你会看到编译的代码以及Gradle所做的一切。

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

您可以打开文件(s,项目根目录中有gradlewgradlew.bat),并查看它是如何工作的,尽管这些文件通常是由Android Studio自动生成的(可以自己创建配置同样,虽然很少有这种需求)。并且对于包含在vcs中,请确保这些文件没有列在.gitnore(或任何vcs忽略扩展名)

+0

谢谢你的回答,但你写的大部分内容已经在我的问题中了。从命令行调用gradle包装与android studio不一样。最有可能的原因是一些环境变量是由工作室或类似的东西设置的。我想知道能够重现相同构建的究竟是什么。查看关于SO的链接问题以阅读有关这些问题的其他人。 – Lennert

+0

@Lennert没有区别。它使用'gradlew'和'gradlew.bat'将Gradle编译成Android应用程序。没有什么区别,如果有一个是它按照顺序实际编译的。先构建然后生成APK,然后安装它。如果您无法从命令行正确编译,您已经遗漏了一些东西。 – Zoe

+0

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