Android studio is giving me 2 problems according to the following example: https://pub.dartlang.org/packages/sqflite
1) The method join
isn't defined for the class uploadIntoDb
2) Undefined class DeepCollectionEquality
There is my so simple code :
import 'package:flutter/material.dart'; import 'dart:async'; import 'package:sqflite/sqflite.dart'; class UploadPage extends StatefulWidget { @override State<StatefulWidget> createState(){ return new UploadPageState(); } } class UploadPageState extends State<UploadPage> with SingleTickerProviderStateMixin { @override void initState(){ super.initState(); } @override Widget build(BuildContext context) { return null; } Future<void> uploadIntoDb(String valueToUpload) async{ // Get a location using getDatabasesPath var databasesPath = await getDatabasesPath(); String path = join(databasesPath, 'poa.db');//FIRST PROBLEM // open the database Database database = await openDatabase(path, version: 1, onCreate: (Database db, int version) async { // When creating the db, create the table await db.execute( 'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)'); }); // Insert some records in a transaction await database.transaction((txn) async { int id1 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'); print('inserted1: $id1'); int id2 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES(?, ?, ?)', ['another name', 12345678, 3.1416]); print('inserted2: $id2'); }); // Update some record int count = await database.rawUpdate( 'UPDATE Test SET name = ?, VALUE = ? WHERE name = ?', ['updated name', '9876', 'some name']); print('updated: $count'); // Get the records List<Map> list = await database.rawQuery('SELECT * FROM Test'); List<Map> expectedList = [ {'name': 'updated name', 'id': 1, 'value': 9876, 'num': 456.789}, {'name': 'another name', 'id': 2, 'value': 12345678, 'num': 3.1416} ]; print(list); print(expectedList); assert(const DeepCollectionEquality().equals(list, expectedList));//SECOND PROBLEM // Count the records count = Sqflite .firstIntValue(await database.rawQuery('SELECT COUNT(*) FROM Test')); assert(count == 2); // Delete a record count = await database .rawDelete('DELETE FROM Test WHERE name = ?', ['another name']); assert(count == 1); // Close the database await database.close(); } }
PS: Yes I included the dependency: sqflite: ^1.1.0
I believe that you need to import the path library/package library as join is one of the functions of this library that is for manipulation paths.
So it should simply be a matter of adding the respective import and the first problem should be resolved.
import 'package:path/path.dart';
The second is similar add
import 'package:collection/collection.dart';
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With