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

Android Studio构建的发布版APK缺失classes.dex及依赖库求助

解决发布版APK缺失自定义类与依赖库的问题

我之前也踩过类似的坑,结合你的情况,大概率是构建配置或者混淆规则出了问题,给你整理几个排查和修复的步骤:

1. 先排查混淆配置(最常见原因)

如果开启了代码混淆但规则写错,很容易把自定义类和依赖库误删:

  • 打开你的build.gradle (App),找到buildTypes下的release块,确认混淆相关配置:
android {
    buildTypes {
        release {
            minifyEnabled true // 若开启混淆,必须配置正确的ProGuard规则
            shrinkResources true // 资源压缩也要配合混淆规则,避免误删必要资源
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
  • 打开proguard-rules.pro,给自定义类和依赖库加白名单:
    • 比如你的自定义类在com.yourcompany.yourapp包下,添加:
      -keep class com.yourcompany.yourapp.** { *; }
      
    • 第三方依赖库(如Retrofit、Glide)要加官方提供的混淆规则,比如Glide的示例规则:
      -keep public class * implements com.bumptech.glide.module.GlideModule
      -keep public class * extends com.bumptech.glide.module.AppGlideModule
      -keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
        **[] $VALUES;
        public *;
      }
      

2. 检查发布版的打包排除规则

有时候会不小心加了错误的打包排除配置,导致类文件被跳过:

  • 查看build.gradle (App)的release块,有没有类似下面的错误配置:
release {
    // 这种配置会直接排除所有class文件,必须删掉!
    // packagingOptions {
    //     exclude '**/*.class'
    // }
}

3. 确认构建变体与模块依赖

  • 打开Android Studio右侧的Build Variants面板,确保你构建的是标准release变体,不是自定义的、未包含模块依赖的变体。
  • 检查主模块的依赖配置,确保所有需要的模块和库在release构建中生效:
dependencies {
    // 确保库依赖没有只加在debug构建里
    implementation project(':your-custom-library')
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
}

4. 清理缓存后重新构建

缓存异常也可能导致打包异常,按以下步骤操作:

  • 点击顶部菜单栏Build -> Clean Project
  • 接着点击Build -> Rebuild Project
  • 最后重新生成签名APK:Build -> Generate Signed Bundle/APK,选择APK并按流程完成。

5. 验证APK内容

生成后用Android Studio的Build -> Analyze APK打开发布版APK,查看classes.dex文件里是否存在你的自定义类和依赖库类,确认问题是否解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:46:24