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
相关产品推荐
相关产品推荐

