因为要上架谷歌, 所以更新了30版本,并且增加了arm64-v8a,运行之后,播放器突然崩溃,不好使了,不兼容。改成29就没问题了。
问题分析:
经排查,该崩溃问题是安卓11对64位库的指针访问问题导致的
原因:从安卓11开始,对于64位进程,进行加指针标记的功能,此功能意味着在访问内存时会忽略指针的顶部字节。这样的原因会导致播放器内核(ijkplayer)在播放网络视频的时候产生播放崩溃。
在工程的 AndroidManifest.xml 文件中添加以下内容:
<application android:allowNativeHeapPointerTagging="false">
...
</application>
这将为应用停用指针标记功能。从而临时解决该问题。(已验证成功)
解决方案 2 :
同步升级和更新sdk底层库使用的 ffmpeg和ijkplayer 到目前开源版本的最新的提交。更新主工程使用的sdk库。