【问题标题】:Unhandled Exception: MissingPluginException when running Flutter app with sqflite未处理的异常:使用 sqflite 运行 Flutter 应用程序时出现 MissingPluginException
【发布时间】:2022-01-08 18:34:44
【问题描述】:

我正在尝试使用sqflite 插件来使用 SQLite 数据库。运行下面的应用程序会导致 Unhandled Exception: MissingPluginException 错误。 这是我的代码:

main.dart:

...
late final Database database;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  database = await openDatabase(
    join(await getDatabasesPath(), 'mydb.db'),
    version: 1,
    onCreate: (db, version) {
      return db.execute('CREATE TABLE config(key TEXT PRIMARY KEY, value TEXT)');
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      title: 'MyApp',
      initialRoute: '/',
      onGenerateRoute: (settings) => onGenerateRoute(settings),
      onUnknownRoute: pageNotImplementedRoute,
    );
  }
}

Route? onGenerateRoute(RouteSettings settings) {
  ...
}

Route pageNotImplementedRoute(RouteSettings settings) {
  return MaterialPageRoute<void>(...);
}

这是运行的输出:

Launching lib\main.dart on Android SDK built for x86 64 in debug mode...
Running Gradle task 'assembleDebug'...
?  Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...
Debug service listening on ws://127.0.0.1:56398/fJzrmThsqQA=/ws
Syncing files to device Android SDK built for x86 64...
E/flutter ( 6173): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)
E/flutter ( 6173): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
E/flutter ( 6173): <asynchronous suspension>
E/flutter ( 6173): #1      wrapDatabaseException (package:sqflite/src/exception_impl.dart:7:20)
E/flutter ( 6173): <asynchronous suspension>
E/flutter ( 6173): #2      SqfliteDatabaseFactoryMixin.getDatabasesPath (package:sqflite_common/src/factory_mixin.dart:152:20)
E/flutter ( 6173): <asynchronous suspension>
E/flutter ( 6173): #3      main (package:mymedica/main.dart:76:10)
E/flutter ( 6173): <asynchronous suspension>
E/flutter ( 6173): 

有人知道怎么回事吗?

【问题讨论】:

  • 使用 sqflite 包时出错。只需停止并运行应用程序,问题就解决了
  • Simply Run these commands.. either-- Flutter clean or Invalidate Caches/Restart
  • 已经做了很多次了。结果还是一样。
  • 可以分享一下步骤吗
  • 在终端:flutter clean。然后flutter pub get。同样在 Android Studio 中:File - Invalidate caches / Restart...

标签: flutter dart sqflite


【解决方案1】:

这个错误只是因为 SQFLite 依赖没有得到它的包。你应该按照这个步骤。这对我有用...

  1. flutter clean
  2. 文件 > 缓存无效并重新启动
  3. flutter pub get

你会得到你想要的结果。!

【讨论】:

  • 就像我在上面的评论中提到的那样,我多次这样做,结果相同。
猜你喜欢
  • 2023-04-03
  • 2021-01-03
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多