首页 > 解决方案 > Flutter 应用程序问题在调试时已修复,但在内部测试中再次出现

问题描述

我已经看过一些类似的问题,其中“我的应用程序在调试期间工作但在生产中崩溃”。我的不是一个崩溃的问题,而是更具体的问题。

我正在开发的 Flutter 应用程序包含 VoIP 功能,出于我无法控制的原因,我们正在使用适用于 Android 和 iOS 的 ABTO VoIP SDK 的打包版本。在我开始从事该项目之前,之前的开发人员包含了 CallKeep 包 ( https://pub.dev/packages/callkeep ),以便在接听电话时在 iOS 上显示本机通话屏幕。这个包需要 23 的 minSdkVersion,这就是问题所在:

VoIP SDK 很老了,我认为没有更新以支持 Android SDK 23 中引入的新运行时权限,这意味着当他增加 minSdkVersion 以支持这个新包时,视频编解码器停止加载,因此设备无法显示通话时的视频。将 minSdkVersion 降低到 < 23 允许它加载视频编解码器,这很好,但是与至少需要 SDK v23 的 CallKeep 包发生冲突。

我想我通过分叉 CallKeep 包并修改 build.gradle 文件以使 minSdkVersion < 23(如果您有兴趣,请 https://github.com/Jaidyn-B/callkeep )解决了这个问题,这似乎工作得很好在调试期间,但是当我创建一个应用程序包并将其上传到内部测试时,问题仍然存在,呼叫显示音频,但没有显示视频。

在下面,您可以看到 SDK 找到音频而非视频编解码器,minSdkVersion 设置为 23:

在这里,您可以看到 SDK 找到音频而非视频编解码器,minSdkVersion 设置为 23

这是将 minSdkVersion 减少到 22 后的输出:

现在它找到了所有编解码器,minSdkVersion 设置为 22。

为什么在构建应用程序包后这不起作用?'modified' CallKeep 包正在本地读取,因此它不应该是 GitHub 上的分支问题。我听说过检查 proguard 规则的建议,但不确定要查找什么。据我了解,这应该有效。

提前感谢您的任何建议,如果我需要添加任何代码片段,请告诉我。

标签: androidflutterpermissionsvoip

解决方案


推荐阅读