我正在嘗試為我的 android 應用程式集成死代碼分析以提高代碼質量。我發現了 android studio 開箱即用的代碼檢查選項,它為我提供了一份關于未使用代碼和建議改進的廣泛報告。
我使用了分析 -> 檢查代碼選項

我在作業室得到的結果如下:

這非常有用,但我想將此代碼分析集成到我的 CI 管道中,以便我可以跟蹤和趨勢報告的警告。
我發現了一個博客,上面說我可以將 Android Studio 包附帶的 inpsect.sh 檔案用于相同的目的。命令的語法如下:
sh inspect.sh <project> <inspection-profile> <output> [<options>]
我嘗試通過傳遞下面給出的適當引數來運行此命令:
sh inspect.sh Users/user1/Documents/androidProject /Users/user1/Documents/androidProject/app/src/InspectionProfile.xml /Users/user1/Documents/inspectionResults -v2 -d /Users/user1/Documents/androidProject/app/src
但是每當我嘗試使用所需的引數運行這個 shell 腳本時,我都會收到以下錯誤:
inspect.sh: line 9: exec: /Applications/Android Studio.app/Contents/bin/inspect.sh/../MacOS/studio: cannot execute: Not a directory
花了很多時間,但沒有運氣。我在這里缺少什么?
uj5u.com熱心網友回復:
這是因為您沒有為-d選項指定引數。
-d <如果不想檢查整個專案,請指定子目錄的完整路徑。>
應該是這樣的:
inspect.sh 'Users/user1/Documents/androidProject' '/Users/user1/Documents/androidProject/app/src/InspectionProfile.xml' '/Users/user1/Documents/inspectionResults' -v2 -d '/Users/user1/Documents/androidProject/app/src'
uj5u.com熱心網友回復:
查看 的內容后inspect.sh,我意識到腳本期望將腳本的絕對路徑作為第一個引數傳遞。
而不是通過:
sh inspect.sh Users/user1/Documents/androidProject /Users/user1/Documents/androidProject/app/src/InspectionProfile.xml /Users/user1/Documents/inspectionResults -v2 -d /Users/user1/Documents/androidProject/app/src
我必須通過inspect.sh如下的絕對路徑:
sh "/Applications/Android Studio.app/Contents/bin/inspect.sh" Users/user1/Documents/androidProject /Users/user1/Documents/androidProject/app/src/InspectionProfile.xml /Users/user1/Documents/inspectionResults -v2 -d /Users/user1/Documents/androidProject/app/src
最后,我能夠在以下位置獲得 XML 報告以供檢查 /Users/user1/Documents/inspectionResults
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333144.html
