Flutter APK 构建
Flutter APK Build
朋友们大家好!我是 Flutter 的新手,我一直在尝试通过 REST API 获取数据。在 Android Studio 上,一切正常,所以我想我的代码没有任何问题。
我为确保我的代码正常工作所做的事情:
1.) 运行 android 模拟器中的代码;
2.) 运行 使用真实设备的代码(启用 USB 调试)。
而且效果很好。
但是当我用它构建一个 apk 文件并将其安装到我的设备上时,它不再进行 API 调用(或无法调用?)。我是这样做的,当应用程序运行s initState()
时,它等待数据加载。虽然数据尚不可用,但 CircularProgressIndicator()
占据了整个屏幕。
如果我通过安装的 apk 文件 运行 应用程序,它只是 CircularProgressIndicator()
。意思是,没有数据被加载和显示。但是当我 运行 在 AndroidStudio 中的代码时,显示了数据..
我正在使用 http
包。我不确定我做错了什么,或者我错过了什么。
其他需要注意的事情:我没有在我的 AndroidManifest
文件中更改任何内容,只是按照官方 documentation.
在 Flutter 中构建 apk 文件的所有步骤进行操作
您是否在清单中添加了互联网权限?如果您从 Android 应用程序访问互联网,您需要在应用程序标签上添加互联网权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
就像alexsanderfr说的,这确实大部分时间是丢失造成的
<uses-permission android:name="android.permission.INTERNET" />
你不应该需要
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
对于 REST API。
在 Flutter 中,调试时您隐式可以访问互联网,但是在发布版本中,您需要显式声明此权限。
更新1
确保您已将 http 包添加到您的 pubspec.yaml 文件中,并且它正确地缩进了两个空格:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
http: ^0.12.0+4
朋友们大家好!我是 Flutter 的新手,我一直在尝试通过 REST API 获取数据。在 Android Studio 上,一切正常,所以我想我的代码没有任何问题。
我为确保我的代码正常工作所做的事情: 1.) 运行 android 模拟器中的代码; 2.) 运行 使用真实设备的代码(启用 USB 调试)。
而且效果很好。
但是当我用它构建一个 apk 文件并将其安装到我的设备上时,它不再进行 API 调用(或无法调用?)。我是这样做的,当应用程序运行s initState()
时,它等待数据加载。虽然数据尚不可用,但 CircularProgressIndicator()
占据了整个屏幕。
如果我通过安装的 apk 文件 运行 应用程序,它只是 CircularProgressIndicator()
。意思是,没有数据被加载和显示。但是当我 运行 在 AndroidStudio 中的代码时,显示了数据..
我正在使用 http
包。我不确定我做错了什么,或者我错过了什么。
其他需要注意的事情:我没有在我的 AndroidManifest
文件中更改任何内容,只是按照官方 documentation.
您是否在清单中添加了互联网权限?如果您从 Android 应用程序访问互联网,您需要在应用程序标签上添加互联网权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
就像alexsanderfr说的,这确实大部分时间是丢失造成的
<uses-permission android:name="android.permission.INTERNET" />
你不应该需要
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
对于 REST API。
在 Flutter 中,调试时您隐式可以访问互联网,但是在发布版本中,您需要显式声明此权限。
更新1
确保您已将 http 包添加到您的 pubspec.yaml 文件中,并且它正确地缩进了两个空格:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
http: ^0.12.0+4