bimasakti
bimasakti

Reputation: 1559

Why can't a Flutter application connect to the Internet when installing "app-release.apk"? But it works normally in debug mode

In debug mode, everything looks good. I get answers and data lists from my API. But after creating app-release.apk and installing it on my phone, there isn't an Internet connection any more.

Here is my 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();
                  },
                );
              }
          }
      },
    );
  },
),

Upvotes: 131

Views: 177583

Answers (5)

Yash Raj Mani
Yash Raj Mani

Reputation: 175

Add these in Android Manifest file.

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

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

Then run:

flutter clean
flutter pub get
flutter run

Upvotes: 8

CopsOnRoad
CopsOnRoad

Reputation: 267454

Open the AndroidManifest.xml file located at <your_project>/android/app/src/main and add the following line:

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

From here:

Add the android.permission.INTERNET permission if your application code needs Internet access. The standard template does not include this tag but allows Internet access during development to enable communication between Flutter tools and a running app.

Upvotes: 287

null_override
null_override

Reputation: 463

For my project, which uses Firebase, downloading the updated google-services.json from firebase console solved the issue.

Upvotes: 1

bimasakti
bimasakti

Reputation: 1559

Add this to file android/app/src/main/AndroidManifest.xml after the package name:

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

Upvotes: 23

Aseem
Aseem

Reputation: 291

If you had put

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

in AndroidManifest.xml

And if it's not working, try checking the connectivity of the device. Mobile data or Wi-Fi on the Android device. Try using the Google Chrome browser for Google Search.

If it's not working, allow

8.8.8.8

in the DNS setting of the computer you are using.

Upvotes: 29

Related Questions