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

Android构建APK提示Invalid code lengths set报错,如何解决?

我之前遇到过类似的构建错误,结合你使用的Gradle 3.6.3版本特性,给你几个针对性的排查和解决方向:

可能的解决方案

  • 清理项目缓存并重新构建
    缓存损坏是这类奇怪构建错误的常见诱因,先试试最基础的清理操作:

    1. 在Android Studio中点击Build > Clean Project,完成后再点击Build > Rebuild Project
    2. 或者直接用命令行执行:
      # macOS/Linux环境
      ./gradlew clean assembleDebug
      # Windows环境
      gradlew clean assembleDebug
      
  • 检查资源压缩与损坏的资源文件
    这个错误大概率和资源处理流程有关,你可以:

    • 暂时关闭资源压缩:打开app模块的build.gradle,把shrinkResources true改为false,重新构建。如果构建成功,说明是资源压缩时某个资源处理出错了。
    • 排查损坏资源:检查res目录下的文件,比如drawable中的图片是否格式正常(有没有损坏的PNG/JPG)、raw目录下的文件是否存在乱码或格式错误,对比正常项目的资源列表,排查新增的异常资源。
  • 检查依赖冲突或不兼容的第三方库
    对比你那个能正常构建的项目,看看当前项目有没有新增的依赖。用命令行查看完整依赖树:

    ./gradlew dependencies
    

    重点排查和资源处理、代码混淆相关的库,部分老版本的第三方库可能和Gradle 3.6.3存在兼容性问题。如果发现可疑依赖,尝试移除或更换为兼容版本。

  • 删除本地Gradle缓存
    本地Gradle缓存文件损坏也可能导致这类问题:

    1. 关闭Android Studio
    2. 删除项目根目录下的.gradle文件夹,以及用户目录下的.gradle/caches文件夹(比如macOS路径是~/Users/你的用户名/.gradle/caches,Windows是C:\Users\你的用户名\.gradle\caches)
    3. 重新打开项目,等待Gradle同步完成后再尝试构建
  • 确认Java版本兼容性
    Gradle 3.6.3要求使用JDK 8,如果你当前使用的是JDK 11及以上版本,可能会出现兼容性问题。在Android Studio中检查设置:
    File > Project Structure > SDK Location,确保JDK Location指向JDK 8的安装路径。

  • 排查多模块项目的资源冲突
    如果你的项目是多模块结构,检查不同模块之间是否存在同名资源(比如两个模块都有ic_launcher.png),资源重名会导致合并时出错。可以给模块资源添加独特前缀,或者删除重复的资源文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:37:47