颤振 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 构建的主要内容,如果未能解决你的问题,请参考以下文章

颤振 APK 构建

无法在颤振中构建apk

颤振:无法构建android apk

构建颤振 apk 时未发现 Gradle 包装器问题

在构建发布 apk 后,我的颤振应用程序没有从 http 获取数据 [重复]

在颤振应用程序中构建 apk 的问题