【问题标题】:Is there any difference in the app operation between release and debug versions?发布版本和调试版本的应用程序操作有什么区别吗?
【发布时间】:2020-05-03 09:42:56
【问题描述】:

我的应用程序有一个奇怪的问题。我做了一个非常简单的应用程序来请求车库的汽车零件。用户(车库的汽车修理工)将他需要的零件放入应用程序中,然后计算机(位于车库的另一部分)接收订单并直接打印到热敏打印机。我通过 HTTP post 发送数据,非常简单,我只是将 JSON 发送到 HTTP 地址。

问题是:当我运行调试版本时(通过 vscode 上的“flutter run”命令)它运行完美,但是当我生成 apk 时(通过“flutter build apk”)应用程序运行但它不发送HTTP post(没有错误消息,应用程序只是不发送并且永远停留在同一个屏幕上)。我测试了不同的设备,它们都可以在调试版本上正常工作,直接从 vscode 创建和安装,并且不能与发布应用程序一起工作。

为什么会这样?由于调试和发布 apk 具有相同的代码,不应该以相同的方式工作吗?有没有办法查看运行发布版本的日志(某种调试,我不知道)?

【问题讨论】:

  • 您将请求发送到的站点上是否有有效证书?见stackoverflow.com/a/44838661/336802
  • 在我的情况下,它不是一个站点,而是来自服务器的内部 IP。我对此了解不多,但我想证书问题不适用于这种情况......
  • 您是否在清单中授予了 Internet 权限,清单位于调试和 android 的主文件夹中。
  • @RenatoAbreu 是我对您问题的解决方案吗?
  • @RenatoAbreu 我已经添加了有关在文件中添加权限的位置的信息。

标签: android debugging flutter apk


【解决方案1】:

这个问题很可能与权限有关。请检查您在Android > app > src > 主目录下的AndroidManifest.xml文件是否有以下权限:

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

如果权限不存在,请将其添加到以&lt;application开头的行上方:

<uses-permission android:name="android.permission.INTERNET"/> // Add here
<application
    android:name="io.flutter.app.FlutterApplication"

【讨论】:

    【解决方案2】:

    Joao Soares 发布的解决方案有效,但我仍然有一个问题:为什么? 这是应用程序的标准行为吗?默认情况下,使用互联网的权限真的是关闭的吗?我看不出这是什么原因...

    【讨论】:

    • 这是典型的 Android 开发。你只要求你需要的权限。有些应用程序不使用互联网。对了,这样的cmet请在评论区留言。
    猜你喜欢
    • 2023-03-29
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多