2
respostas

Erro MissingPluginException ao compilar

Pessoal Boa tarde

   Não sei mais o que fazer ao compilar recebo esse erro

   Error: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import '../models/contact.dart';

Future<Database> createDatabase(){
 return getDatabasesPath().then((dbPath) {
   final String path = join(dbPath,'bytebank.db');
   return openDatabase(path, onCreate: (db, version) {
     db.execute('CREATE TABLE contacts('
         'id INTEGER PRIMARY KEY, '
         'name TEXT'
         'account_number INTEGER');
   }, version: 2);
 });
}

Future<int> save (Contact contact){
  return createDatabase().then((db) {
    final Map<String, dynamic> contactMap = Map();
    contactMap['id'] = contact.id;
    contactMap['name'] = contact.name;
    contactMap['account_number'] = contact.accountnumber;
    return db.insert('contacts', contactMap, conflictAlgorithm: ConflictAlgorithm.replace);
  });
}

Future<List<Contact>> findAll() {
  return createDatabase().then((db){
    return db.query('contacts').then((maps) {
      final List<Contact> contacts = [];
      for (Map<String, dynamic> map in maps) {
        final Contact contact =  Contact(
            map['id'],
            map['name'],
            map['account_numer']
        );
        contacts.add(contact);
      }
      return contacts;
    });
  });
}
2 respostas

Oi! Boa noite.

O meu estava dando esse erro também, resolvi executando esses comandos no terminal do projeto: flutter clean flutter run

O primeiro (flutter clean) vai deletar as dependências, o segundo (flutter run) vai rodar o app e instalar elas novamente.

Provavelmente isso aconteceu por conta de algum erro da dependência path.

Acho que não tem nada haver, mas eu adicionei esse return também nesse trecho do código:

Future<Database> createDatabase() {
  return getDatabasesPath().then((dbPath) {
    final String path = join(dbPath, 'bytebank.db');
    return openDatabase(path, onCreate: (db, version) {
        return db.execute(

Adicionei esse return no db.execute, pois está assim na documentação oficial do Flutter. Porém, novamente, acredito que isso não está relacionado com o erro e a primeira solução que dei já deve ser suficiente!

Espero ter te ajudado! Aqui resolveu. Bons estudos!

O meu está com esse mesmo erro também, Error: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite). Usei o comando flutter clean e o flutter run, mas o erro ainda continua.