我正在使用 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;
}