我正在尝试将flutter应用程序的应用程序数据存储在数据库中,但是编译器始终显示异步函数“ Future不是一种类型”,并用红色下划线显示。我也尝试删除.analysis-driver,但这无济于事。 我该如何解决?
代码:
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart';
import 'dart:io';
class Db_Help{
static final _db_name="Work_tasks.db";
static final _db_version=1;
static final table="Work Table";
static final task_id="ID";
static final task="Task";
static final bool_check="Value";
static Database _database;
Db_Help._private_cons();
static final Db_Help instance=Db_Help._private_cons();
_initDatabase() async{
Directory docu_dir=await getApplicationDocumentsDirectory();
String path=join(docu_dir.path,_db_name);
return await openDatabase(path, version: _db_version, onCreate: _onCreate);
}
Future<Database> get database async{
if(_database!=null)
return _database;
_database=await _initDatabase();
return _database;
}
Future _onCreate(Database db, int version) async{
await db.execute('''
CREATE TABLE $table (
$task_id INTEGER PRIMARY KEY,
$task TEXT NOT NULL,
$bool_check INTEGER)
''');
}
Future<int> insert(Map<String,dynamic> row) async{
Database db= await instance.database;
return await db.insert(table, row);
}
}
答案 0 :(得分:2)
如果您运行的是 macOS,请打开 Activity Monitor 并终止 Dart(非常确定它占用了约 90% 的 CPU)。这将禁用 dart:async 库并使风扇运行得异常响亮
答案 1 :(得分:1)
就我而言,我缺少一个函数名,它在许多文件的许多位置出错。例如,而不是:
Future<bool> myFunction (int parm1)
不小心删掉了函数名,结果是:
Future<bool> (int parm1)
这给项目的许多文件带来了问题,给出了“未来不是一种类型”的错误。在错误列表中,也有缺少函数名的错误,所以更正了所有其他错误都消失了。
答案 2 :(得分:0)
答案 3 :(得分:0)
我前几次遇到这个问题。就我而言...
转到文件->使缓存无效/重新启动...->使无效并重新启动
答案 4 :(得分:0)
昨天遇到了这个问题。尝试了一些修复此错误的建议,今天通过执行以下操作可以解决此问题:
将pubspec.yaml中的SDK版本更新为至少2.7.0 (在我的SDK版本为2.2.0之前,我认为这导致了 错误。至少2.7.0为我工作了。
environment:
sdk: ">=2.7.0 <3.0.0"
运行时保持干净
转到文件->使缓存无效/重新启动,然后选择“使缓存无效并重新启动”
答案 5 :(得分:0)
我上周看到了这个问题。这是您可以执行的操作,如果未修复,请按该顺序移动:
确保您有 dart:async 导入
确保您的项目级别 sdk 设置正确
File -> Project Structure 在 Project 中,选择有效的 Project SDK。 在 Modules -> myapp_android -> Dependencies 中,选择一个有效的 Module SDK。
更新 pubspec.yaml 中的 SDK 版本
刷新缓存并重启 Android Studio。
File -> Invalidate Caches/Restart 并选择“Invalidate Caches and Restart”
答案 6 :(得分:0)
我使用 vs 代码遇到了这个问题。我通过关闭并重新打开 vs 代码解决了这个问题。
答案 7 :(得分:-1)
关闭ide并重新打开它,它起作用了