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

Github Actions构建APK时google-services.json格式错误问题

解决Github Actions构建APK时google-services.json格式错误问题

问题根源

你在GitHub Actions的解码步骤中犯了环境变量大小写不匹配的错误:

  • 在env块中定义的变量名是data(小写)
  • 但在run命令中使用的是$DATA(大写)

Linux环境变量严格区分大小写,这会导致解码命令读取到空值,生成的google-services.json内容为空或无效,最终触发JSON格式错误。

修复步骤

1. 修正Android.yml中的解码步骤

将环境变量名统一,确保引用一致。推荐修改为:

- name: Load Google Service file
  env:
    GOOGLE_SERVICES_JSON: ${{secrets.GOOGLE_SERVICES_JSON}}
  run: echo "$GOOGLE_SERVICES_JSON" | base64 -d > app/google-services.json

2. 确保base64编码无换行(可选但推荐)

如果你的base64编码结果带有换行符,可能会导致Secrets存储时出现格式问题。重新编码时添加-w0参数禁用换行:

base64 -w0 google-services.json

将生成的单行base64字符串重新存入GOOGLE_SERVICES_JSON Secrets。

3. 验证生成的JSON文件(可选)

在解码步骤后添加验证步骤,确认文件内容有效:

- name: Validate Google Services JSON
  run: python3 -m json.tool app/google-services.json

如果JSON格式正确,该步骤会输出格式化后的内容;若错误,则会直接报错,帮助你快速定位问题。

完整修正后的android.yml示例

name: Android CI

on:
  push:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'zulu'
          cache: gradle

      - name: Cache Gradle packages
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
          restore-keys: |
            ${{ runner.os }}-gradle-

      - name: Load Google Service file
        env:
          GOOGLE_SERVICES_JSON: ${{secrets.GOOGLE_SERVICES_JSON}}
        run: echo "$GOOGLE_SERVICES_JSON" | base64 -d > app/google-services.json

      - name: Validate Google Services JSON
        run: python3 -m json.tool app/google-services.json

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew
      - name: Build with Gradle
        run: ./gradlew build

      - name: Upload build artifacts
        uses: actions/upload-artifact@v2
        with:
          name: build
          path: app/build/outputs/apk/release/*.apk

内容的提问来源于stack exchange,提问作者Omer Elkhalifa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:37:04