【问题标题】:No implementation found for method getDatabasesPath找不到方法 getDatabasesPath 的实现
【发布时间】:2022-01-17 16:03:36
【问题描述】:

我看到很多人都有类似的问题。但是,到目前为止,我找不到解决方案。 我正在构建一个 Android 应用程序,在其中实现了一些蓝牙功能。我目前要做的是创建一个数据库来存储蓝牙设备的配置。为此,我使用sqflitepath 插件。实施后,我收到以下错误: [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)

我的打开数据库功能:

    Database _database = await openDatabase(
      join(await getDatabasesPath(), 'dataset.db'),
      onCreate: (db, version) {
        return db.execute(
            "CREATE TABLE datasets(id INTEGER PRIMARY KEY, dataset TEXT)"
        );
      },
      version: 1,
    );
    return _database;
  }

【问题讨论】:

  • 从它在sqlite中的android上的本机代码中缺少getDatabasesPath,因此该函数将不会发生。你有没有试过在flutter pub get之后flutter clean。它在包装本身上。此外,它的 repo 是免费的,你可以为此创建一个问题。我有时确实会从其他包中遇到这样的情况。
  • 是的,我做到了。我做了几次。还尝试过使 Android Studio 缓存失效,移除 Flutter 缓存,不同版本的 sqflite。到目前为止没有任何效果:(

标签: android flutter dart sqflite


【解决方案1】:

所以最后我想通了。问题出在 GeneratedRegistrantPlugin 中。通常它应该注册所有进入原生平台的 Flutter 插件。但是,就我而言,什么都没有(它是在 flutter pub get 期间生成的)。经过调查,我从我的项目中删除了不必要的文件夹示例,它最终允许 GeneratedRegistrantPlugin 正确生成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-03
    • 2018-10-06
    • 2020-09-15
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多