Android Studio inspect.sh集成CI做代码分析运行报错如何解决?
问题原因及解决方案
1 报错核心原因
你调用inspect.sh的方式错误,导致脚本内部路径解析异常。inspect.sh是Android Studio内置的脚本,执行时如果直接在其他目录下用sh inspect.sh的相对路径方式执行,脚本会误将自身文件名当成目录层级拼接后续的Studio主程序路径,才会出现/Applications/Android Studio.app/Contents/bin/inspect.sh/../MacOS/studio这种无效路径(脚本本身是文件不是目录,所以inspect.sh/..路径不合法)。
同时你传入的第一个项目路径参数存在格式错误,漏掉了根目录斜杠,Users/user1/Documents/androidProject需要修正为/Users/user1/Documents/androidProject。
2 具体修复方案
有两种可用的执行方式,二选一即可:
- 方式一:使用绝对路径调用
inspect.sh,注意Android Studio默认路径中的空格需要用引号包裹避免解析错误
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
- 方式二:先切换到
inspect.sh所在的目录再执行脚本
cd "/Applications/Android Studio.app/Contents/bin" 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
3 CI环境适配注意事项
- 提前配置好Android Studio的路径环境变量,避免硬编码路径导致不同环境执行失败
- 首次执行前需要手动同意Android Studio的用户协议,否则脚本会卡住无输出
- 如果需要过滤检查范围,
-d参数可指定对应模块的源码路径,和你当前的配置逻辑一致
内容的提问来源于stack exchange,提问作者Gurunath Sripad
相关产品推荐
相关产品推荐

