93 votes

Pourquoi une application Flutter ne peut-elle pas se connecter à Internet lors de l'installation de "app-release.apk" ? Mais elle fonctionne normalement en mode débogage

En mode débogage, tout semble bon. Je reçois des réponses et des listes de données de mon API. Mais après avoir créé app-release.apk et de l'installer sur mon téléphone, il n'y a plus de connexion Internet.

Voici mon code :

ScopedModelDescendant<ReportPosViewModel>(
  builder: (context, child, model) {
    return FutureBuilder<List<Invoice>>(
      future: model.invoices,
      builder: (_,
        AsyncSnapshot<List<Invoice>> snapshot) {
          switch (snapshot.connectionState) {
            case ConnectionState.none:
            case ConnectionState.active:
            case ConnectionState.waiting:
              return Center(
                child:
                  const CircularProgressIndicator());
            case ConnectionState.done:
              if (snapshot.hasData) {
                // Something todo
              }
              else if (snapshot.hasError) {
                return NoInternetConnection(
                  action: () async {
                    await model.setInvoice();
                    await getData();
                  },
                );
              }
          }
      },
    );
  },
),

218voto

CopsOnRoad Points 4705

Ouvrez le AndroidManifest.xml situé à l'adresse ./android/app/src/main et ajoutez la ligne suivante :

<manifest xmlns:android="...">
  <uses-permission android:name="android.permission.INTERNET"/> <!-- Add this -->
</manifast>

De aquí :

Ajoutez la permission Android.permission.INTERNET si le code de votre application nécessite un accès à Internet. Le modèle standard n'inclut pas cette balise mais autorise l'accès à Internet pendant le développement pour permettre la communication entre les outils Flutter et une application en cours d'exécution.

5 votes

Changements nécessaires pour iOS ?

18 votes

@SoonSantos oui, aucun changement n'est nécessaire pour iOS.

1 votes

C'est nécessaire pour flutter aussi ? c'est flutter et pas un projet java, je l'ai utilisé mais cela ne fonctionne pas encore.

23voto

Aseem Points 111

Si vous aviez mis

<uses-permission android:name="android.permission.INTERNET"/>

sur AndroidManifest.xml

Et si cela ne fonctionne pas, essayez de vérifier la connectivité de l'appareil. Données mobiles ou Wi-Fi sur l'appareil Android. Essayez d'utiliser le navigateur Google Chrome pour la recherche Google.

Si cela ne fonctionne pas, permettez

8.8.8.8

dans le paramètre DNS de l'ordinateur que vous utilisez.

2 votes

J'ai ajouté à la permission internet manifeste mais le réseau ne fonctionne pas, j'ai également testé dans google et d'autres navigateurs, il fonctionne. juste dans l'application ne fonctionne pas. mais son travail dans le débogage et le mode de libération lorsque je reçois aab pas de travail

0 votes

Avez-vous trouvé une solution à ce problème ? @RahmanRezaee

0 votes

<3 essayer de vérifier la connectivité de l'appareil

17voto

bimasakti Points 579

Ajoutez ceci au dossier Android/app/src/main/AndroidManifest.xml après le nom du paquet :

<uses-permission android:name="android.permission.INTERNET"/>

0 votes

@CopsOnRoad : Non, non, non, non, pas de ! Martijn Pieters avait raison (mais il aurait fallu l'expliquer dans le résumé de l'édition). La réponse n'était pas formatée correctement. C'est une erreur très courante.

1voto

Imran Points 66

Voici la réponse complète :

Placez la ligne de permission Internet comme ci-dessous dans android/app/src/main/AndroidManifest.xml

<manifest xmlns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>

Référence : https://flutter.dev/docs/development/data-and-backend/networking

1voto

null_override Points 432

Pour mon projet, qui utilise Firebase, le téléchargement de la version mise à jour de google-services.json à partir de la console firebase a résolu le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X