gpt4 book ai didi

android - Vitamio:UnsatisfiedLinkError,找不到 native 方法

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:14 25 4
gpt4 key购买 nike

您好,我正在开发使用 Vitamio 播放实时音频流的 android 应用程序。当我第一次在 Sony Experia J(android 4.1.2) 中安装应用程序时,它崩溃了。但是当我再次打开它时,它开始播放了。因此,每当我第一次安装该应用程序时, radio 都会在该设备中崩溃。以下是崩溃日志:

java.lang.UnsatisfiedLinkError: Native method not found: 

io.vov.vitamio.MediaPlayer.native_init:()V
at io.vov.vitamio.MediaPlayer.native_init(Native Method)
at io.vov.vitamio.MediaPlayer.<init>(MediaPlayer.java:238)
at io.vov.vitamio.MediaPlayer.<init>(MediaPlayer.java:192)

在这一行发生崩溃:

mMediaPlayer = new MediaPlayer(this); 

但是当我调试应用程序时没有遇到此崩溃。所以没有得到这次崩溃的确切原因。

我知道当找不到库时会发生此崩溃。但是,当我再次启动该应用程序时,它可以正常播放。只有当我安装新版本时,应用程序才会因上述异常而崩溃。

有谁知道,为什么会这样......?

最佳答案

关于在调试时无法捕捉到这一点,那是因为在调试时,它比不捕捉要。因此,一个简单而肮脏的修复方法就是设置延迟。

根本原因是:在调用 native 方法时,库应该已经加载(通过 System.loadLibrary())。

所以我最好的猜测是 MediaPlayer.native_init 在第一次实际加载之前被调用。

解决方案:检查加载.so库的位置,并在加载后启动MediaPlayer。

关于android - Vitamio:UnsatisfiedLinkError,找不到 native 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com