android - react-native-media-meta 在调试时工作但在发布 APK 时崩溃
问题描述
要为我们的应用程序读取选定的媒体元数据react-native
,我们使用了react-native-media-meta
. 它在已发布的 APK 中导致问题,但在调试中工作正常。
包链接:https ://github.com/mybigday/react-native-media-meta
我在读取媒体元数据方面取得了成功,应用程序在调试iOS
和Android
调试中都运行良好。在发布 APK 时,应用程序抛出Exception
如下:
java.lang.NoSuchFieldError: no "J" field "mNativeContext" in class "Lwseemann/media/FFmpegMediaMetadataRetriever;" or its superclasses at wseemann.media.FFmpegMediaMetadataRetriever.native_init(Native Method) at wseemann.media.FFmpegMediaMetadataRetriever.<clinit>(Unknown Source:43) at com.mybigday.rnmediameta.RNMediaMeta.getMetadata(Unknown Source:19) at com.mybigday.rnmediameta.RNMediaMeta.access$000(Unknown Source:0) at com.mybigday.rnmediameta.RNMediaMeta$1.run(Unknown Source:8)
只有在发布时才Exception
存在。我遵循从这里使用的特定库描述Android
:https ://github.com/wseemann/FFmpegMediaMetadataRetriever#using-fmmr-in-your-application-android-studioreact-native-media-meta
但是,如果我要发布基于 APK 的架构,它给出的结果相同。如果我为每个架构声明多个依赖项,则会产生dependancy duplication
问题。
目前,这个单一问题是构建已发布的 Android APK 的障碍。任何帮助将不胜感激,我该如何克服这个问题。
类似问题:1. https://github.com/mybigday/react-native-media-meta/issues/22 2. https://github.com/wseemann/FFmpegMediaMetadataRetriever/issues/197
解决方案
我刚刚通过在 progaurd-rules.pro 文件中添加这些行来解决这个问题
- -keep class com.mybigday.** { *; }
- -keep class com.mybigday.rnmediameta.** { *; }
- -保持类 wseemann.media.** {*;}
它解决了发布版本中的问题。
推荐阅读
- python - 如何识别浮点变量?获取 ValueError:无法将字符串转换为浮点数:
- java - 如何在 Firebase 图像标记中使用具有 uint8 输入和输出数据类型的 TFLite 模型
- flutter - Flutter Provider 不会重建小部件
- html - 为什么文本装饰显示在我客户的手机中,但没有显示在我的手机或浏览器中?
- android - Android Studio - 具有扳手图标的属性有什么用?
- excel - 从脚本字典中粘贴项目值
- scala - 如何进一步提取列表以从双嵌套列表中创建三重嵌套列表
- php - 数组,获取顶层的标题和数据
- arrays - Ruby:如何在数组中的每个项目之间插入单个值?
- json - 使用 Go 解析 JSON 文件的问题