You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Travis-CI构建Android应用时遇退出码1错误求助

排查Travis-CI Android构建失败(退出码1)的问题

我来帮你梳理下./gradlew build connectedCheck命令退出码1的常见原因和解决办法,结合你的配置来看,主要可以从这几个方向入手:

1. 补全Android组件依赖

connectedCheck需要运行Instrumented测试,这依赖Android系统镜像和额外的仓库支持。你的当前配置里缺少这些关键组件,建议更新android.components部分:

android:
  components:
    - tools:latest  # 确保使用最新的工具
    - platform-tools
    - build-tools-27.1.1
    - android-27
    - extra-android-m2repository  # 支持库仓库
    - sys-img-armeabi-v7a-android-27  # 运行测试需要的系统镜像

2. 配置模拟器运行环境

Travis默认不会自动启动模拟器,你需要在构建前创建并启动模拟器,确保测试能正常运行。可以在.travis.yml里添加以下步骤:

before_script:
  # 创建AVD模拟器
  - echo no | android create avd --force -n test -t android-27 --abi armeabi-v7a
  # 后台启动模拟器(无音频、无窗口)
  - emulator -avd test -no-audio -no-window &
  # 等待模拟器完全启动
  - android-wait-for-emulator
  # 解锁模拟器屏幕(避免锁屏影响测试执行)
  - adb shell input keyevent 82 &

另外,可能需要提前安装adb工具,在before_install里加上:

before_install:
  - chmod +x gradlew
  - sudo apt-get update
  - sudo apt-get install -y android-tools-adb android-tools-fastboot

3. 拆分命令定位问题

把build connectedCheck拆成两个独立命令,这样能快速判断是编译阶段失败还是测试阶段失败:

script:
  - ./gradlew build  # 先执行编译,失败则直接终止,方便定位编译错误
  - ./gradlew connectedCheck  # 编译成功后再执行Instrumented测试

4. 同步build.gradle配置

确保你的项目build.gradle里的参数和Travis配置一致:

  • compileSdkVersion 27
  • buildToolsVersion "27.1.1"
    同时检查依赖仓库是否配置正确,比如在项目根目录的build.gradle里添加:
allprojects {
    repositories {
        google()
        jcenter()
    }
}

修改后的完整.travis.yml示例

language: android
before_install:
  - chmod +x gradlew
  - sudo apt-get update
  - sudo apt-get install -y android-tools-adb android-tools-fastboot
android:
  components:
    - tools:latest
    - platform-tools
    - build-tools-27.1.1
    - android-27
    - extra-android-m2repository
    - sys-img-armeabi-v7a-android-27
before_script:
  - echo no | android create avd --force -n test -t android-27 --abi armeabi-v7a
  - emulator -avd test -no-audio -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &
script:
  - ./gradlew build
  - ./gradlew connectedCheck

如果修改后还是失败,一定要去Travis的构建日志里看具体的错误详情——比如是某个类编译报错、依赖找不到,还是某个Instrumented测试用例失败,这些细节是精准定位问题的关键。

内容的提问来源于stack exchange,提问作者Luuk Kenselaar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:29:08