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

修改包名后Flutter Android应用安装后无法启动,报ClassNotFoundException

问题描述

我的Firebase项目中有2个Android应用,希望将Flutter应用关联其中一个。已修改build.gradle中的包名且确认正确,但应用安装后无法打开,出现以下致命异常:

E/AndroidRuntime(27385): FATAL EXCEPTION: main
E/AndroidRuntime(27385): Process: com.tis.tis_root, PID: 27385
E/AndroidRuntime(27385): java.lang.RuntimeException: 无法实例化活动ComponentInfo{com.tis.tis_root/com.tis.tis_root.MainActivity}: java.lang.ClassNotFoundException: 未在路径上找到类"com.tis.tis_root.MainActivity": DexPathList[[zip文件"/data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/base.apk"],nativeLibraryDirectories=[/data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/lib/arm64, /data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
E/AndroidRuntime(27385):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3681)
E/AndroidRuntime(27385):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3938)
E/AndroidRuntime(27385):        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
E/AndroidRuntime(27385):        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(27385):        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(27385):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2291)
E/AndroidRuntime(27385):        at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(27385):        at android.os.Looper.loopOnce(Looper.java:210)
E/AndroidRuntime(27385):        at android.os.Looper.loop(Looper.java:299)
E/AndroidRuntime(27385):        at android.app.ActivityThread.main(ActivityThread.java:8319)
E/AndroidRuntime(27385):        at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(27385):        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)  
E/AndroidRuntime(27385):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1038)
E/AndroidRuntime(27385): Caused by: java.lang.ClassNotFoundException: 未在路径上找到类"com.tis.tis_root.MainActivity": DexPathList[[zip文件"/data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/base.apk"],nativeLibraryDirectories=[/data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/lib/arm64, /data/app/~~biRvmKsCdAVdqrEFB9fN6A==/com.tis.tis_root-E9f7gEaJHF3Cy7QSfZfH3A==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
E/AndroidRuntime(27385):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
E/AndroidRuntime(27385):        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(27385):        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(27385):        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)  
E/AndroidRuntime(27385):        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
E/AndroidRuntime(27385):        at android.app.Instrumentation.newActivity(Instrumentation.java:1274)
E/AndroidRuntime(27385):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3668)
E/AndroidRuntime(27385):        ... 12 more

解决步骤

  • 检查AndroidManifest.xml中的MainActivity路径
    打开android/app/src/main/AndroidManifest.xml,确认<activity>标签的android:name属性与新包名完全匹配,格式应为com.tis.tis_root.MainActivity:

    <activity
        android:name="com.tis.tis_root.MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
    
  • 清理项目缓存并重构
    执行以下命令彻底清理Flutter和Android项目的缓存,避免旧配置残留:

    flutter clean
    cd android
    ./gradlew clean
    cd ..
    flutter pub get
    flutter build apk --debug
    
  • 验证Firebase配置文件
    确保从Firebase控制台下载的google-services.json文件已替换到android/app目录,且文件内的package_name字段值为com.tis.tis_root。

  • 检查代码目录结构
    确认Android端的MainActivity文件路径正确:

    • Kotlin项目:android/app/src/main/kotlin/com/tis/tis_root/MainActivity.kt
    • Java项目:android/app/src/main/java/com/tis/tis_root/MainActivity.java
      若目录结构不匹配,需手动调整包名目录或移动文件到对应路径。
  • 启用MultiDex支持
    若应用依赖较多导致方法数超过限制,需开启MultiDex:

    1. 在android/app/build.gradle中添加配置:
      android {
          defaultConfig {
              ...
              multiDexEnabled true
          }
      }
      
      dependencies {
          implementation 'androidx.multidex:multidex:2.0.1'
      }
      
    2. 在AndroidManifest.xml的<application>标签中指定MultiDexApplication:
      <application
          ...
          android:name="androidx.multidex.MultiDexApplication">
      
  • 卸载旧版本应用
    先彻底卸载设备上的旧版本应用,再重新安装新构建的安装包,避免新旧版本缓存冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:34:53