android - Android DJI SDK - 从 Play 商店安装的我的 App Bundle 挂起一个正常运行的应用程序
问题描述
所以我多年来一直在处理这个问题——如果我将与 DJI 兼容的应用程序构建为 APK,并将其提交到 Play 商店,它就可以正常工作。如果我构建与 App Bundle 相同的应用程序,并将其提交到 Play 商店,那么当我安装并运行该应用程序时,整个事情就会挂起/崩溃。
可以使用bundletool
本地构建来复制此问题,因此我不必将 Play 商店用作调试平台(!!),但直到现在我还无法真正解决问题。挂起似乎发生在调用之后DJISDKManager::registerApp()
。
我通过发布拆分 APK 来解决这个问题。但现在有两件事对我来说更加紧迫:
- Google 对使用 App Bundle 的要求越来越严格(至少对于新应用而言)
- 使用最新的 DJI SDK(撰写本文时为 4.15),我的应用 APK 现在已超过 100MB 限制
所以它必须是 App Bundles。使这些功能化缺少什么?
解决方案
我正在回答自己,因为这个解决方案在 DJI Mobile SDK Github 问题页面中似乎很有帮助,也许在这里也有帮助。
通过添加行
android.bundle.enableUncompressedNativeLibs=false
到gradle.properties
,应用程序包打包现在似乎工作正常。
注意在Issue 642中,人们还添加了
android:extractNativeLibs="true"
对他们AndroidManifest.xml
- 这可能会有所帮助;在我的情况下,这已经在我的代码中解决了一个不同的问题,所以我不能说这个问题是否需要它。
推荐阅读
- android - Gradle 错误:发现多个文件与操作系统无关路径 'META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version'
- jquery - jquery关于方法不使用第二个参数
- sql - 两次调用过程并在第二次调用时获取 COUNT(*) 更快还是在获取记录列表时执行 COUNT(*) OVER() 更快?(PostgreSQL)
- arrays - 使用 awk BEGIN 创建循环
- javascript - Tensorflow 和 Tensorflow.js 之间的区别?
- r - Stata 上的编码帮助
- python - 缩进记事本++ Python中制表符和空格的不一致使用
- python - 为什么 pd.unique() 比 np.unique() 快?
- postgresql - PostgreSQL如何检查函数中是否存在参数
- ios - iOS:到服务器的 FFMPEG 视频流为 RTSP 提供“找不到协议”