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

GitLab CI构建Flutter App Bundle时遇Segmentation fault(11)错误求助

GitLab CI构建Flutter App Bundle时遭遇段错误

我的CI配置

variables:
  PLAY_STORE_JSON: $PLAY_STORE_JSON
  KEY_PROPERTIES: $KEY_PROPERTIES
  UPLOAD_KEYSTORE: $UPLOAD_KEYSTORE

build:bundle:
  stage: build
  image: cirrusci/flutter:3.3.5
  tags:
    - docker-app-dev
  before_script:
    - cd android
    - echo $KEY_PROPERTIES > key.properties
    - echo $UPLOAD_KEYSTORE > app/upload-keystore.jks
  script:
    - flutter clean
    - flutter build appbundle
  after_script:
    - rm -f ./android/app/upload-keystore.jks ./android/key.properties

报错信息

../../runtime/bin/eventhandler_linux.cc: 416: error: Failed to start event handler 

thread 1
===== CRASH =====
si_signo=Segmentation fault(11), si_code=1, si_addr=0x10
Aborting re-entrant request for stack trace.
/usr/bin/bash: line 134:    12 Aborted                 (core dumped) flutter clean

解决思路

  • 修复密钥文件写入方式:echo无法正确处理二进制的keystore文件,会导致文件损坏进而引发异常。先把本地的upload-keystore.jks用base64编码(执行base64 upload-keystore.jks),将编码后的内容更新到GitLab的UPLOAD_KEYSTORE变量中,然后修改CI配置中的写入命令:

    before_script:
      - echo "$KEY_PROPERTIES" > android/key.properties
      - echo "$UPLOAD_KEYSTORE" | base64 -d > android/app/upload-keystore.jks
    

    同时去掉cd android的步骤,保持在项目根目录操作,避免后续flutter命令路径错误。

  • 更换Flutter镜像:cirrusci/flutter:3.3.5可能存在环境兼容性问题,换成官方Flutter镜像试试,比如flutter:3.3.5或者更新到更稳定的版本(如3.7.12):

    image: flutter:3.7.12
    
  • 检查Runner资源:段错误常和内存不足有关,确认GitLab Runner分配的内存足够,必要时调整Runner的资源限制参数。

内容的提问来源于stack exchange,提问作者Imen MK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:35:20