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