在真正的 android 设备上安装应用程序时,Sqflite 无法正常工作

时间:2020-12-21 13:05:23

标签: android sqlite flutter sqflite

我正在使用 Flutter 开发应用程序,但我在使用 sqflite 时遇到了一些问题。

首先,无论android api版本如何,我在虚拟机上安装和运行都没有问题。

但是当我尝试在真正的android设备上运行它时,apk或USB连接安装都不会发生错误。

错误是未创建数据库“部分”。

某些列消失了,或者某些表不可用。

我认为这与库或 android manifest.. 等有关。但我不确定是什么问题。

我把我的设置与数据库相关。请帮帮我。

pubspec.yaml 与数据库相关

        environment:
  sdk: ">=2.10.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  sqflite: ^1.3.1
  path: any
  path_provider: ^1.6.1

初始化数据库

import 'package:path/path.dart' as p;
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';

  DatabaseHelper._createInstance();

  factory DatabaseHelper() {
    if (_databaseHelper == null) {
      _databaseHelper =
          DatabaseHelper._createInstance(); //EXEC ONLY ONCE (SINGLETON OBJ)
    }
    return _databaseHelper;
  }

  Future<Database> get database async {
    if (_database == null) {
      _database = await initDb();
    }
    return _database;
  }

  initDb() async {
    var databasesPath = await getDatabasesPath();
    String path = p.join(databasesPath, 'main.db');
//    io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
//    String path = join(documentsDirectory.path, "main.db");
    Database database =
        await openDatabase(path, version: NEW_DB_VERSION, onCreate: _onCreate);
    return database;
  }

0 个答案:

没有答案