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

Flutter新手Android Studio打包APK安装后打开闪退报ClassNotFoundException求助

问题报错原文

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.test.beauty/com.test.beauty.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.test.beauty.MainActivity" on path: DexPathList[[zip file "/data/app/~~vVpGIeyV47V4c3-Hh5r9Wg==

修复方案
  • 核对包名与MainActivity文件路径

    如果你有过改包名、移动代码文件的操作,首先核对两个位置的一致性:

    1. 安卓清单文件android/app/src/main/AndroidManifest.xml中,<activity>标签的android:name属性、根标签的package属性,是否和你的目标包名com.test.beauty完全一致
    2. MainActivity文件的存放路径要和包名完全匹配,kotlin编写的MainActivity路径应为android/app/src/main/kotlin/com/test/beauty/MainActivity.kt,Java编写的对应路径为android/app/src/main/java/com/test/beauty/MainActivity.java,路径任一节点不匹配都会触发类找不到异常。
  • 清理构建缓存重新打包

    按顺序执行以下命令清理冗余缓存后重新构建:

    1. 清理Flutter项目缓存:flutter clean
    2. 重新拉取项目依赖:flutter pub get
    3. 清理安卓端构建缓存:
      • Mac/Linux系统执行:cd android && ./gradlew clean
      • Windows系统执行:cd android && gradlew clean
    4. 退回项目根目录重新打release包:flutter build apk --release
  • 开启多Dex配置

    如果项目引入的第三方依赖较多,方法数超出65536限制未开启多Dex也会触发该问题,打开android/app/build.gradle文件做如下修改:

    1. 在defaultConfig配置块中添加多Dex开关:
    defaultConfig {
        // 保留原有其他配置不变,新增如下配置
        multiDexEnabled true
    }
    
    1. 在dependencies配置块中添加多Dex依赖:
    dependencies {
        // 保留原有其他依赖不变,新增如下配置
        implementation "androidx.multidex:multidex:2.0.1"
    }
    
  • 调整混淆规则

    如果你开启了代码混淆,可能是混淆规则误移除了MainActivity类,打开android/app/proguard-rules.pro文件,添加如下规则保留对应类:

    -keep class com.test.beauty.MainActivity { *; }
    

    同时确认已添加Flutter官方要求的基础混淆规则,避免核心类被误混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:57:03