gradle常用命令和查看錯誤

Gradle 常用命令和查看錯誤信息

Gradle 是 Android 現在主流的編譯工具,使用它可以幫助我們編譯、打包APP等過程。同時,我們也可以爲Gradle指定構建規則,讓它按照我們的指定構建應用。在Android中,我們常用的clean、build等其實就是使用的gradle方式來進行構建的,只是這些Android studio幫我們做了,我們只需要在界面上進行點擊就可以了。但是,還有一些比較有用的命令Android Studio並沒有全部封裝,比如:查看module的依賴關係、編譯錯誤追蹤等。下面我們就來說一說gradle中常用命令(使用gradle的指令,需要用到gradlew(即gradle wrapper的簡寫))和一個錯誤追蹤的實例。

  • 推薦文章:gradle的介紹,《Android Gradle 指南》
  • gradlew使用格式:
    • gradlew 使用標準格式: gradlew [option…] [task…]
    • 也可以用:gradlew [task…] [option…]

其中:option表示選項,task表示任務。

在Android studio,我們可以在Terminal窗口中輸入命令。

常用命令

  • gradlew -?/-h/–help:顯示幫助信息,會打印可選參數及參數說明信息
  • gradlew -v/–version:打印版本信息
  • gradlew tasks --all:查看所有任務,包括緩存任務等
  • gradlew clean:清除工程目錄下的build文件夾
  • gradlew build:檢查依賴並編譯打包,debug、release環境的包都會打出來
  • gradlew assemble***:編譯指定的包:如Debug包(gradlew assembleDebug)、Release包(gradlew assembleRelease)、渠道包(gradlew assembleGoogleRelease/assembleGoogleDebug;渠道包需要結合Product Flavors)、定製的版本等等
  • gradlew install***:編譯並安裝指定的包:如Debug包(gradlew installDebug)、Release包(gradlew installRelease)、渠道包、定製的版本等等;
  • gradlew uninstall**:卸載已安裝的指定模式的包:如Debug包(gradlew uninstallDebug)、Release包(gradlew uninstallRelease)、渠道包、定製的版本等等;
  • gradlew 😒{modeleName}:dependencies:查看模塊的包依賴關係,如gradlew :app:dependencies
  • gradlew --refresh-dependencies:強制刷新依賴,即檢查依賴是否有更新比如動態版本、SHA1進行本地cache和遠程倉庫散列碼的對比等,有更新則下載更新進行構建
  • gradlew build -i/–info -d/–debug -s/–stacktrace:編譯(build)並打印debug模式和info等級的日誌及所有異常的堆棧信息(–stacktrace)
  • gradlew clean build --refresh-dependencies:組合指令,清除構建(gradlew clean)並重新構建(gradlew build),同時強制刷新依賴(gradlew --refresh-dependencies)
  • gradlew --offline:離線模式,即讓Gradle只使用本地cache裏的依賴,如果cache中沒有也不會更新依賴,而是提示編譯失敗
  • gradlew –info:打印堆棧信息
  • gradlew --daemon:守護進程,使用Gradle的守護進程構建,能夠提高構建效率,如果守護進程沒啓動或現有的都處於忙碌狀態,就啓動一個守護進程;
  • gradlew --no-daemon:如果你已經配置爲使用守護進程構建,可以使用該選項本次不用守護進程構建;
  • gradlew --continuous:連續構建,即任務隊列中即使某個任務失敗,不會終止執行,而是會繼續執行下一個任務

錯誤追蹤

有時候我們在使用Android Studio進行打包apk時,項目報錯。但是報錯信息卻非常少,不知道在哪裏報錯了。這時候使用gradlew就可以快速的對錯誤進行定位。

使用命令查看錯誤詳細信息:gradlew build -–stacktrace ,使用該條命令編譯項目,並打印異常堆棧信息(當然還可以添加其他的參數)

或者說我們在編譯報錯時 ,Android studio 往往會告訴我們是哪一個task執行失敗了,這打印出來的信息中,我們能找到類似這種信息**Task :app:mergeDebugResources FAILED**,它告訴我們 mergeReleaseResources task執行失敗,那麼我們就可以單獨執行這條命令(gradlew :app:mergeDebugResources),打印出失敗的詳細信息,然後通過詳細信息就可以對錯誤的地方進行修改了。

error 圖片

使用Android Studio點擊執行命令

在Android Studio中,有很多命令其實都不需要我們去記住命令,因爲大多數的命令可以通過點擊的形式執行,我們最常使用的就是運行apk、使用Android Studio進行打包。其實,在Android Studio的 Gradle 窗口中還有很多的命令可以通過點擊直接執行。如圖:

gradlew1 圖片

對於打印錯誤的詳細信息,其實Android Studio中也是可以配置的,位置方式如下:【File -> Settings -> Build, Execution, Deployment > Compiler 的 Command-line Options: 】後面的輸入框中可以輸入 --stacktrace 或其他需要打印的詳細信息參數。

gradlew2 圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章