为什么在安装app-release.apk时flutter应用程序无法连接到Internet?但在调试模式下正常

bim*_*kti 8 api debugging release flutter

在调试模式下,一切看起来都不错,可以从我的API获取响应和数据列表。但是在我构建app-release.apk并安装到手机后,它显示没有互联网连接

这是我的代码

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();
                },
              );
            }
        }
      },
    );
  },
),
Run Code Online (Sandbox Code Playgroud)

bim*_*kti 21

将其添加到文件android/app/src/main/AndroidManifest.xml中的包名称之后:

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)


Cop*_*oad 20

AndroidManifest.xml位于的文件中,android/app/src/main您需要在<manifest标签中添加此权限。

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

  • iOS 无需更改? (4认同)
  • @john 这不像 Flutter 或 Java,而是适用于 Android。而对于Android项目来说,使用它是很有必要的。 (3认同)
  • @SoonSantos是的,iOS无需更改。 (2认同)
  • @RayCoder Profile 不会完成发布工作,您需要将其放在答案中提到的位置。 (2认同)

小智 14

如果你已经把

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

如果它不起作用,请尝试检查设备的连接性。Android 设备上的移动数据或 Wi-Fi。尝试使用 Google Chrome 浏览器进行 Google 搜索。

如果它不起作用,请允许

8.8.8.8

在您使用的计算机的 DNS 设置中。

  • 我添加到清单互联网权限,但网络不起作用,我还在谷歌和其他浏览器中测试它的工作原理。只是在应用程序中不起作用。但当我得到 aab 不工作时,它在调试和发布模式下工作 (2认同)

小智 6

将这些添加到 Android Manifest 文件中。

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

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

然后运行:

flutter clean
flutter pub get
flutter run
Run Code Online (Sandbox Code Playgroud)