嗨,我正在开发android应用程序,使用Vitamio来播放现场音频流。当我第一次在Sony (Android4.1.2)中安装应用程序时,它崩溃了。但当我再次打开它,它开始播放。所以每当我第一次安装这个应用程序的时候,收音机就会在这个设备上崩溃。下面是崩溃日志:
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); 但当我调试应用程序时,不会出现这种崩溃。所以不知道这次坠机的确切原因。
我知道当它找不到库时,就会发生这种崩溃。但是,当我再次启动应用程序时,它会正常运行。只有当我安装新的构建,应用程序崩溃与上述除外。
有人知道为什么会发生这种事吗..?
发布于 2015-05-29 10:18:46
关于在调试过程中无法捕捉到这一点,即因为调试时,的速度比慢,所以不能。因此,一个简单而又肮脏的修复将只是设置一个延迟。
根本原因是:在调用本机方法时,假定库已经加载(通过System.loadLibrary())。
因此,我最好的猜测是,在第一次加载MediaPlayer.native_init之前就会调用它。
解决方案:签出加载.so库的位置,并使MediaPlayer在加载后启动。
发布于 2016-07-02 19:40:54
如果您使用调用Vitamio.isInitialized(this);
在MyApplication extend Application中初始化****.so的路径
我希望这个建议能帮助你解决你的问题
https://stackoverflow.com/questions/30499369
复制相似问题