簡體   English   中英

Android Studio 如何手動運行 gradle 同步?

[英]Android Studio how to run gradle sync manually?

我正在 Android Studio 中調試 Gradle 問題並查看對“運行 gradle 同步”的引用,但我不確定如何運行此命令。

如何從 Android Studio 或 Mac 終端運行“Gradle sync”?

Android studio 的工具欄中應該有這個按鈕,標記為“Sync project with Gradle Files”

編輯:我不知道它是什么時候改變的,但現在看起來像這樣:

在此處輸入圖片說明

編輯:這就是它在 3.3.1 上的樣子在此處輸入圖片說明
或者通過從菜單欄中轉到File -> Sync Project with Gradle Files

警告:-- --recompile-scripts命令自gradle版本 5.0 起已被棄用。 要檢查您的gradle版本,請運行gradle -v

./gradlew --recompile-scripts

它會在不構建任何東西的情況下進行同步。


或者,在您的根項目中使用命令行

./gradlew build

它將同步和構建您的應用程序,並且比 Gradle 同步花費的時間更長

要查看所有可用的 gradle 任務,請使用./gradlew tasks

在 Android Studio 3.3 中,它在這里:

在此處輸入圖片說明

根據Android Studio 3.1中的答案https://stackoverflow.com/a/49576954/2914140 ,它在這里:

在此處輸入圖片說明

此命令移至File > Sync Project with Gradle Files

在此處輸入圖片說明

鍵盤快捷鍵愛好者可以通過轉到 File -> Settings -> Keymap -> Plugins -> Android Support -> Sync Project with gradle files(右鍵單擊它添加鍵盤快捷鍵) -> Apply - 添加手動運行 gradle 同步的快捷方式> 好的,你完成了。Gradle 同步鍵盤快捷鍵 選擇任何方便的鍵作為您的 gradle 同步快捷鍵,不會與任何其他快捷鍵沖突,(我選擇了 Shift + 5 作為我的 gradle 同步鍵),所以接下來當您想手動運行 gradle 同步時,只需按此鍵盤快捷鍵即可。

我認為它是指 Android Studio 主菜單中的“工具”>“Android”>“與 Gradle 文件同步項目”。

gradle --recompile-scripts

似乎在不構建任何東西的情況下進行同步。 您可以通過以下方式啟用自動構建

gradle --recompile-scripts --continuous

請參閱文檔以獲取更多信息:

https://docs.gradle.org/current/userguide/gradle_command_line.html

快捷方式(Ubuntu、Windows):

Ctrl + F5

將項目與 Gradle 文件同步。

我認為./gradlew tasksAndroid studio sync相同。 為什么? 我會解釋的。

我在測試 jacoco 覆蓋率報告時遇到問題。 當我直接在命令行中運行./gradlew clean :Test:testDebugUnitTest時,出現錯誤。

Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.2.jar_5bdiis3s7lm1rcnv0gawjjfxc/jacocoagent.jar

但是,如果我先單擊 android studio sync ,它運行正常。 因為build/../jacocoagent.jar自然出現。 我不知道為什么,也許 jacoco 插件中存在錯誤。 我發現運行.gradlew tasks單元也會使 jar 出現。 所以我可以在 grade 腳本中得到相同的結果。

此外, gradle --recompile-scripts對這個問題不起作用。

我有一個麻煩可能證明 gradlew clean 不等於 ADT build clean。 現在我正在努力修復它。

這是我得到的:我從我的 gradle.properties,從我的 build.gradle 設置了一個 configProductID=11111,我添加

resValue "string", "ProductID", configProductID

如果我從 ADT 執行構建清理,則可以生成資源 R.string.ProductID。 然后我可以成功執行波紋管命令。

gradlew assembleDebug

但是,當我嘗試設置構建服務器時,我不需要 ADT IDE 的幫助,所以我需要避免使用 ADT build clean。 我的問題來了。 現在我將資源名稱從“ProductID”更改為“myProductID”,我這樣做:

gradlew clean

我得到錯誤

PS D:\work\wctposdemo> .\gradlew.bat clean

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\work\wctposdemo\app\build.gradle'

* What went wrong:
Could not compile build file 'D:\work\wctposdemo\app\build.gradle'.
> startup failed:
  General error during semantic analysis: Unsupported class file major version 57

如果我嘗試:

.\gradlew.bat --recompile-scripts

我只是得到錯誤

Unknown command-line option '--recompile-scripts'.

任何想使用命令行同步項目與 gradle 文件的人,請注意:

從 Gradle 5.0 開始,

--recompile-scripts命令行選項已被刪除。

從終端:

gradle prepareKotlinBuildScriptModel

注意:您可以通過檢查“構建”選項卡來查看 android studio 正在做什么。 里面會有差異窗口。 一個應該是“同步”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM