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

升级至SDK 34后Android Gradle构建失败求助

解决Android升级targetSdk到34后GitHub流水线构建失败的问题

核心问题分析

本地构建正常但流水线失败,本质原因是:

  • 本地存在依赖缓存,流水线为全新环境,依赖解析完全依赖远程仓库
  • 旧仓库(如Jcenter)已停止服务,部分依赖坐标错误,Jitpack存在访问权限限制

具体解决步骤

1. 修复仓库配置,替换废弃仓库

修改根目录build.gradle的仓库配置,移除/替换已废弃的Jcenter,补充必要的活跃仓库:

buildscript {
    repositories {
        // 替换jcenter为mavenCentral(主流活跃仓库)
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:8.5.2'
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2'
    }
}

allprojects {
    repositories {
        // 保留jcenter仅用于未迁移的旧库(可选,建议逐步移除)
        jcenter() {
            content {
                includeGroup "com.amulyakhare" // 仅允许特定组从jcenter拉取
            }
        }
        mavenCentral() // 添加mavenCentral,多数旧库已迁移至此
        google() // 替代原maven.google.com写法,配置更简洁
        maven { url "https://jitpack.io" }
    }
}

2. 修正错误的依赖坐标

部分依赖存在冗余前缀,修改app/build.gradle中的依赖项:

  • 原错误坐标:com.amulyakhare:com.amulyakhare.textdrawable:1.0.1
  • 修正为:com.amulyakhare:textdrawable:1.0.1

3. 解决Jitpack 401未授权问题

针对io.github.zncmn.libyuv:core:0.0.7的401错误,提供两种方案:

  • 方案一:添加Jitpack访问令牌
    1. 在GitHub仓库的Settings > Secrets and variables > Actions中添加JITPACK_TOKEN(值为你的GitHub个人访问令牌,需包含仓库读取权限)
    2. 修改根目录build.gradle的Jitpack仓库配置:
      maven { 
          url "https://jitpack.io"
          credentials {
              username = System.getenv("JITPACK_TOKEN")
          }
      }
      
    3. 在GitHub流水线的yml文件中传入该变量:
      steps:
        - name: Build with Gradle
          env:
            JITPACK_TOKEN: ${{ secrets.JITPACK_TOKEN }}
          run: ./gradlew bundleRelease
      
  • 方案二:本地引入依赖
    若该库无公开访问权限,下载其aar文件放入项目libs目录,在app/build.gradle中添加:
    dependencies {
        implementation files('libs/libyuv-core-0.0.7.aar')
    }
    

4. 处理其他找不到的依赖

  • com.github.gcacace:signature-pad:1.2.1:若Jitpack无法访问,可将该库fork到自己的GitHub仓库后重新通过Jitpack引入,或下载aar本地依赖
  • com.mikhaellopez:circularimageview:3.2.0:该库已发布到mavenCentral,确保仓库配置中包含mavenCentral()即可正常拉取

5. 配置GitHub流水线的Gradle缓存

在流水线yml中添加Gradle缓存,减少重复构建时间并降低依赖拉取失败概率:

steps:
  - uses: actions/checkout@v4
  - name: Set up JDK 17
    uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'
      cache: gradle
  - name: Build with Gradle
    env:
      JITPACK_TOKEN: ${{ secrets.JITPACK_TOKEN }}
    run: ./gradlew bundleRelease

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:00:16