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

Flutter应用启动崩溃:ClassNotFoundException问题求助

Flutter Android模拟器启动崩溃:ClassNotFoundException 解决建议

已花费4小时排查Flutter应用故障,Android模拟器启动时直接崩溃,抛出FATAL EXCEPTION: main异常,核心错误为java.lang.ClassNotFoundException,无法找到com.journalq.todoey_flutter.journalquestion类。

完整错误日志

E/AndroidRuntime(11780): FATAL EXCEPTION: main
E/AndroidRuntime(11780): Process: com.journalq.todoey_flutter, PID: 11780
E/AndroidRuntime(11780): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.journalq.todoey_flutter/com.journalq.todoey_flutter.journalquestion}: java.lang.ClassNotFoundException: Didn't find class "com.journalq.todoey_flutter.journalquestion" on path: DexPathList[[zip file "/data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/base.apk"],nativeLibraryDirectories=[/data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/lib/x86, /data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
E/AndroidRuntime(11780):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3365)
E/AndroidRuntime(11780):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
E/AndroidRuntime(11780):    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
E/AndroidRuntime(11780):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(11780):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(11780):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
E/AndroidRuntime(11780):    at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(11780):    at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(11780):    at android.app.ActivityThread.main(ActivityThread.java:7656)
E/AndroidRuntime(11780):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(11780):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/AndroidRuntime(11780):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
E/AndroidRuntime(11780): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.journalq.todoey_flutter.journalquestion" on path: DexPathList[[zip file "/data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/base.apk"],nativeLibraryDirectories=[/data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/lib/x86, /data/app/~~xFI8S-8ieQSNoEminTot9Q==/com.journalq.todoey_flutter-XhDsDOk_4PnlP78EiAyARw==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
E/AndroidRuntime(11780):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
E/AndroidRuntime(11780):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(11780):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(11780):    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
E/AndroidRuntime(11780):    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
E/AndroidRuntime(11780):    at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
E/AndroidRuntime(11780):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3353)
E/AndroidRuntime(11780):    ... 11 more

main.dart代码

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'animation_screen.dart';
import 'example_start_screen.dart';
import 'services/storage.dart';
import 'package:journalquestion/models/task_data.dart';

void main() {
  Storage();
  TaskData();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
        overlays: [SystemUiOverlay.bottom]);
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Journal Question',
      theme: ThemeData(
        canvasColor: Color(0xff5d6592),
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Material(
        child: Stack(children: <Widget>[
      Scaffold(body: ExampleStartScreen()),
      IgnorePointer(
          child: AnimationScreen(
        color: Color(0xff5d6592),
      ))
    ]));
  }
}

排查方向及解决方法

  • 检查AndroidManifest.xml启动Activity配置:打开android/app/src/main/AndroidManifest.xml,确认主Activity的android:name属性值是否正确。Flutter项目默认启动Activity是MainActivity,如果配置成了com.journalq.todoey_flutter.journalquestion但该类不存在,就会抛出这个错误,将其改为.MainActivity或完整路径com.journalq.todoey_flutter.MainActivity。
  • 清理项目缓存并重建:执行以下命令清理缓存后重新编译:
    flutter clean
    flutter pub get
    flutter run
    
  • 检查类名大小写:Java类名严格区分大小写,日志中的journalquestion是全小写,确认是否应为JournalQuestion(首字母大写),如果实际类名是大写但配置中写了小写,会导致类找不到。
  • MultiDex配置检查:如果项目方法数超过65536,需开启MultiDex。在android/app/build.gradle中添加:
    android {
        defaultConfig {
            multiDexEnabled true
        }
    }
    
    dependencies {
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    
    同时让Application类继承MultiDexApplication,或者在attachBaseContext中调用MultiDex.install(this)。
  • 检查第三方依赖:项目中引入的journalquestion包,确认其Android端的类文件是否完整集成,有没有缺失相关类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:42:22