3
respostas

The getter 'length' was called on null.

Baixei o código inicial do curso "Flutter com web API: integrando sua app mobile" mas ele apresenta o erro abaixo, após clicar no botão "Contacts":

════════ Exception caught by widgets library ═══════════════

The following NoSuchMethodError was thrown building FutureBuilder<List>(dirty, state: _FutureBuilderState<List>#05f4b): The getter 'length' was called on null. Receiver: null Tried calling: length

The relevant error-causing widget was: FutureBuilder<List> file:///C:/Users/Silvia/Documents/03_curso_flutter_web_api/bytebank/lib/screens/contacts_list.dart:16:13 When the exception was thrown, this was the stack:

#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)

#1 ContactsList.build. (package:bytebank/screens/contacts_list.dart:44:37)

#2 _FutureBuilderState.build (package:flutter/src/widgets/async.dart:732:55)

#3 StatefulElement.build (package:flutter/src/widgets/framework.dart:4619:28)

#4 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15) ...

3 respostas

Olá Silvia, tudo bem com você?

Todas as dependências foram baixadas corretamente?

Eu acabei de fazer download do projeto inicial e instalar e ao clicar no botão não houve erro nenhum

Você pode ir na pasta e executar flutter pub get para obter todas as dependências e depois um flutter run para checar se funciona corretamente ?

Abraços e Bons Estudos!

Oi Geovani,

Obrigada pelo retorno.

Executei o flutter pub get e o flutter run e o erro continua.

Que estranho Silvia, como eu fiz download do projeto e rodou normalmente acredito que os problemas não estão nos arquivos dado que não houve alteração em nada

Então vamos tentar uma segunda coisa, ao invés de fazer download do projeto vamos recriar:

  • flutter create nomedoprojeto

Copie todos os arquivos da pasta lib e images para esse novo projeto

  • dentro de pubspec.yaml

Adicione o sqflite e o path dentro de dependencies

dependencies:
  flutter:
    sdk: flutter
  sqflite:
  path:
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2

Habilite os assets também:

flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - images/bytebank_logo.png

E execute o flutter run para iniciar o projeto, se ao clicar no botão ainda continuar o erro, você pode por favor postar o código do contact_list.dart para dar uma olhada? Como você fez download do projeto inicial não é para ter nada de diferente nesse arquivo, mas só para garantir :)

Abraços e Bons Estudos!