颤振 APK 构建
Posted
技术标签:
【中文标题】颤振 APK 构建【英文标题】:Flutter APK Build 【发布时间】:2020-08-25 18:04:15 【问题描述】:朋友们好!我是 Flutter 的新手,我一直在尝试通过 REST API 获取数据。在 android Studio 上,一切正常,所以我想我的代码没有问题。
我为确保我的代码正常工作所做的事情: 1.) 在安卓模拟器中运行代码; 2.) 使用真机运行代码(开启USB调试)。
而且效果很好。
但是当我用它构建一个 apk 文件并将其安装在我的设备上时,它不再进行 API 调用(或者无法调用?)。我这样做了,当应用程序运行initState()
时,它会等待数据加载。虽然数据尚不可用,但 CircularProgressIndicator()
会占据整个屏幕。
如果我通过已安装的 apk 文件运行应用程序,它只是 CircularProgressIndicator()
。意思是,没有数据被加载和显示。但是当我在 AndroidStudio 中运行代码时,会显示数据..
我正在使用http
包。我不确定我做错了什么,或者我错过了什么。
其他注意事项:我没有更改我的AndroidManifest
文件中的任何内容,只是按照官方documentation在Flutter中构建apk文件的所有步骤。
【问题讨论】:
您的帖子缺少足够的信息来调查问题。特别是,如果不查看代码的相关部分,就很难帮助解决代码问题——对代码的描述通常是不够的。请参阅How do I ask a good question? 和How to create a Minimal, Reproducible Example。 【参考方案1】:就像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
【讨论】:
谢谢。我做到了。但问题仍然存在。不过我注意到的一件事是,当我尝试将生成的 apk 文件加载到 AndroidStudio 的“分析 APK”功能时,我注意到 http 包未包含在最终构建中。包括了一些像 FontAwesome 和 CupertinoIcons 这样的包,但不包括 http.. 为什么会这样? O.o 您的 pubspec.yaml 中是否有 http-package 和适当的缩进,诸如此类?依赖项:flutter:sdk:flutter cupertino_icons:^0.1.2 http:^0.12.0+4 是的,先生,我有。我在这个网站上发布了另一个问题,描述了这个问题,但在一个较小的测试应用程序中。这是链接:***.com/questions/61710099/…【参考方案2】:您是否在清单中添加了互联网权限?如果您从 Android 应用程序访问互联网,则需要在应用程序标签上添加互联网权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
【讨论】:
以上是关于颤振 APK 构建的主要内容,如果未能解决你的问题,请参考以下文章