Flutter APK构建

时间:2020-05-10 07:39:07

标签: android api rest flutter apk

咕咕天啦!我是Flutter的新手,我一直在尝试通过REST API提取数据。在Android Studio上,一切正常,所以我想我的代码没有错。

我为确保代码能正常工作而做的事情: 1.)在android模拟器中运行代码; 2.)使用真实设备运行代码(启用USB调试)。

它工作得很好。

但是当我用它构建一个apk文件并将其安装在我的设备上时,它不再进行API调用(或无法?)。我做到了,当应用程序运行initState()时,它等待数据加载。当数据尚不可用时,CircularProgressIndicator()将占据整个屏幕。

如果我通过已安装的apk文件运行该应用,则该文件仅为CircularProgressIndicator()。意思是,没有数据正在加载和显示。但是当我在AndroidStudio中运行代码时,就会显示数据。

我正在使用http软件包。我不确定自己做错了什么或缺少了什么。

其他注意事项:AndroidManifest文件中我没有进行任何更改,只是通过官方documentation遵循了在Flutter中构建apk文件的所有步骤。

2 个答案:

答案 0 :(得分:3)

像亚历山德斯·弗朗西斯(Alexandrfrfr)所说,这的确确实是大部分时间都是由于失踪造成的。

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

您不需要

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

用于REST API。

在Flutter中,调试时可以隐式访问Internet,但是在发行版本中,您需要明确声明此权限。

update1

确保已将http软件包添加到pubspec.yaml文件中,并且已正确缩进两个空格:

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  http: ^0.12.0+4

答案 1 :(得分:0)

您是否已将Internet权限添加到清单?如果您要通过Android应用访问互联网,则需要在应用标签上添加互联网许可。

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