3
respostas

Possível problema no código na versão 2.5.2 do Flutter

Boa tarde, me deparei com problema igual já relatado aqui na hora de instanciar a lista de contatos recebendo o snapshot.data. Tentei realizar as alterações como feitas aqui https://cursos.alura.com.br/forum/topico-erro-ao-atribuir-object-a-uma-variavel-list-contact-159148 porém agora estou com outro problema que é a seguinte mensagem de erro:

E/SQLiteLog( 9643): (1) no such table: contacts

Another exception was thrown: type 'Null' is not a subtype of type 'List' in type cast

Creio que esteja acontecendo por causa das mudanças do flutter 2.5.2, mas não sei como proceder. Segue meu código:

class ContactsList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Contacts'),
      ),
      body: FutureBuilder(
        future: findAll(),
        builder: (context, snapshot) {
          final List<Contact> contacts = snapshot.data as List<Contact>;
          return ListView.builder(
            itemBuilder: (context, index) {
              final Contact contact = contacts[index];
              return _ContactItem(contact);
            },
            itemCount: contacts.length,
            // ignore: prefer_const_literals_to_create_immutables
          );
        },
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.of(context)
              .push(
                MaterialPageRoute(
                  builder: (context) => ContactForm(),
                ),
              )
              .then(
                (newContact) => debugPrint(newContact.toString()),
              );
        },
        child: Icon(Icons.add),
      ),
    );

Alguém passou por isso? Desde já agradeço.

3 respostas

Verifique suas instruções para criar a tabela e os selects para ver se o nome da tabela está igual. Se estiver a tabela não está sendo criada. Você pode tentar:

  • Alterar a versão no GetDatabase
  • Reiniciar a aplicação
  • Desinstalar do emulador e executar novamente

para ver se ela ser

Tentei fazer o que foi sugerido(Com relação ao emulador, eu uso depuração usb mas creio que não tem relação com o problema). Porém o problema persiste.

Verificou os nomes da tabelas? O SQLite não está encontrando a tabela. Coloque o c