CircleCI 2.0构建Android项目时遇gradlew不存在错误求助
./gradlew的问题 看到你遇到的./gradlew: No such file or directory错误,这是Android项目在CircleCI构建时的常见问题,主要和文件存在性、权限或者工作目录配置有关,下面一步步帮你排查解决:
1. 确认项目已提交gradlew和gradle/wrapper目录
很多开发者会忽略把Gradle wrapper相关文件提交到版本控制,而CircleCI构建时是从你的版本库拉取代码,如果这些文件缺失,自然找不到gradlew。你需要确保以下文件/目录已经提交:
- 项目根目录的
gradlew脚本 - 项目根目录的
gradle/wrapper文件夹(包含gradle-wrapper.jar和gradle-wrapper.properties)
如果之前没提交,把它们添加到git并推送:
git add gradlew gradle/wrapper git commit -m "Add Gradle wrapper files" git push
2. 验证工作目录与代码路径是否匹配
你配置了working_directory: ~/AndroidDemo,CircleCI的checkout步骤会把代码拉取到这个目录下。但如果你的项目在版本库中是嵌套结构(比如代码在一个子文件夹里),那gradlew的路径就不是~/AndroidDemo/gradlew,而是子文件夹下。
可以在checkout步骤后加一个查看目录结构的命令,确认文件位置:
- run: name: Check project structure command: ls -la ~/AndroidDemo
如果发现gradlew不在当前目录,就需要调整run命令的路径,比如如果在app子目录下,就改成./app/gradlew(或者调整working_directory到对应路径)。
3. 给gradlew添加可执行权限
就算gradlew存在,如果没有可执行权限,bash也会报找不到文件的错误。你可以在执行gradlew命令前先添加权限:
修改你的Download Dependencies步骤:
- run: name: Download Dependencies command: | chmod +x ./gradlew ./gradlew androidDependencies
4. 调整后的关键步骤示例
version: 2 jobs: build: working_directory: ~/AndroidDemo docker: - image: circleci/android:api-25-alpha environment: JVM_OPTS: -Xmx3200m steps: - checkout # 新增目录检查与权限设置步骤 - run: name: Verify project files and set gradlew permission command: | ls -la ~/AndroidDemo chmod +x ./gradlew - run: name: Download Dependencies command: ./gradlew androidDependencies # 后续原有步骤保持不变...
先按照上面的步骤排查,最常见的原因就是没提交Gradle wrapper文件或者权限不足,先检查这两点应该就能解决问题。
内容的提问来源于stack exchange,提问作者Sheikh Faisal Miskhat

