发布版本和调试版本的应用程序操作有啥区别吗?
Posted
技术标签:
【中文标题】发布版本和调试版本的应用程序操作有啥区别吗?【英文标题】: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 具有相同的代码,不应该以相同的方式工作吗?有没有办法查看运行发布版本的日志(某种调试,我不知道)?
【问题讨论】:
您将请求发送到的站点上是否有有效证书?见***.com/a/44838661/336802。 在我的情况下,它不是一个站点,而是来自服务器的内部 IP。我对此了解不多,但我想证书问题不适用于这种情况...... 您是否在清单中授予了 Internet 权限,清单位于调试和 android 的主文件夹中。 @RenatoAbreu 是我对您问题的解决方案吗? @RenatoAbreu 我已经添加了有关在文件中添加权限的位置的信息。 【参考方案1】:这个问题很可能与权限有关。请检查您在Android > app > src > 主目录下的AndroidManifest.xml文件是否有以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
如果权限不存在,请将其添加到以<application
开头的行上方:
<uses-permission android:name="android.permission.INTERNET"/> // Add here
<application
android:name="io.flutter.app.FlutterApplication"
【讨论】:
【参考方案2】:Joao Soares 发布的解决方案有效,但我仍然有一个问题:为什么? 这是应用程序的标准行为吗?默认情况下,使用互联网的权限真的是关闭的吗?我看不出这是什么原因...
【讨论】:
这是典型的 Android 开发。你只要求你需要的权限。有些应用程序不使用互联网。对了,这样的cmet请在评论区留言。以上是关于发布版本和调试版本的应用程序操作有啥区别吗?的主要内容,如果未能解决你的问题,请参考以下文章