android - 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:
这是将 minSdkVersion 减少到 22 后的输出:
为什么在构建应用程序包后这不起作用?'modified' CallKeep 包正在本地读取,因此它不应该是 GitHub 上的分支问题。我听说过检查 proguard 规则的建议,但不确定要查找什么。据我了解,这应该有效。
提前感谢您的任何建议,如果我需要添加任何代码片段,请告诉我。
解决方案
推荐阅读
- android - 如何将其他需要的文件推送到应用程序目录?
- python - 给你两个数字a和b。您需要找到最接近 b 的 a 的幂
- c# - 动态填充 TreeView... 像类别 > 父类别
- android - 如何使用新的 Google drive REST API 上传和下载文件?
- java - 识别大噪声图像中的小物体 - opencv
- groovy-console - 如何调用 groovy 内部类
- bash - 我收到错误:意外标记“完成”附近的语法错误
- java - 使用 Spring 的 OAuth 2.0 资源服务器中的 Https 问题
- swift - 在 osx 上同时使用多个音频设备
- android - 无法使用 Firebase 部署 Ionic 应用程序找不到与包名称匹配的客户端