首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vitamio: UnsatisfiedLinkError,未找到本机方法

Vitamio: UnsatisfiedLinkError,未找到本机方法
EN

Stack Overflow用户
提问于 2015-05-28 07:01:57
回答 2查看 2.1K关注 0票数 2

嗨,我正在开发android应用程序,使用Vitamio来播放现场音频流。当我第一次在Sony (Android4.1.2)中安装应用程序时,它崩溃了。但当我再次打开它,它开始播放。所以每当我第一次安装这个应用程序的时候,收音机就会在这个设备上崩溃。下面是崩溃日志:

代码语言:javascript
复制
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)

在这条线上撞车:

代码语言:javascript
复制
mMediaPlayer = new MediaPlayer(this); 

但当我调试应用程序时,不会出现这种崩溃。所以不知道这次坠机的确切原因。

我知道当它找不到库时,就会发生这种崩溃。但是,当我再次启动应用程序时,它会正常运行。只有当我安装新的构建,应用程序崩溃与上述除外。

有人知道为什么会发生这种事吗..?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-29 10:18:46

关于在调试过程中无法捕捉到这一点,即因为调试时,的速度比慢,所以不能。因此,一个简单而又肮脏的修复将只是设置一个延迟。

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

因此,我最好的猜测是,在第一次加载MediaPlayer.native_init之前就会调用它。

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

票数 3
EN

Stack Overflow用户

发布于 2016-07-02 19:40:54

如果您使用调用Vitamio.isInitialized(this);

MyApplication extend Application中初始化****.so的路径

我希望这个建议能帮助你解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30499369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档