我按照谷歌的要求将vitamio 4.2.2更新到5.0.0,因为开发人员控制台中存在安全问题。但同样的代码,它会崩溃如下:

java.lang.UnsatisfiedLinkError: dlopen failed: library "nulllibstlport_shared.so" not found
at java.lang.Runtime.load(Runtime.java:332)
at java.lang.System.load(System.java:981)
at io.vov.vitamio.MediaPlayer.<clinit>(MediaPlayer.java:257)
at io.vov.vitamio.widget.VideoView.openVideo(VideoView.java:431)
at io.vov.vitamio.widget.VideoView.setVideoURI(VideoView.java:403)
at io.vov.vitamio.widget.VideoView.setVideoURI(VideoView.java:396)
at io.vov.vitamio.widget.VideoView.setVideoPath(VideoView.java:392)
at com.mypackage.myapp.LiveStreamActivity$LiveStreamParse.onPostExecute(LiveStreamActivity.java:131)

崩溃发生在我调用videoView.setVideoPath(liveStreamUrl);时,如下所示:
VideoView videoView = (VideoView) findViewById(R.id.vvSurface);
videoView.setVideoPath(liveStreamUrl);
final MediaController mediaController = new MediaController(LiveStreamActivity.this);
videoView.setMediaController(mediaController);
videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);
videoView.requestFocus();
videoView.start();

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
         mediaPlayer.setPlaybackSpeed(1.0f);
    }
});

当我查看vitamio 5.0.0的样本时,没有任何变化。看来维塔米奥完全毁了自己。尽管他们在2015年11月02日发布了这个版本,但他们仍然将sdk版本作为api 19的目标。这真是太可惜了。
对于这个不幸的问题,除了期待维塔米奥团队给出适当的答案外,我们将非常感谢您的任何建议。

最佳答案

你的应用程序似乎找不到“nulllibstlport_shared.so”本机库。当涉及到本机时,可以指定发生问题的特定设备。
然而,在vitamio网站上,他们说lib目前支持:armv6、vfp、armv7、neon、mips、x86等等……
因此,我建议您尝试强制您的应用程序只包含受支持的abi的本地libs。
为此,您需要将此添加到app/build.gradle

defaultConfig {
    ...

    ndk {
        abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
    }
}

在项目的根文件夹中找到gradle.properties文件并添加“android.usedprecatedndk=true”
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
...
# org.gradle.parallel=true

android.useDeprecatedNdk=true

但我真的不知道这是否有用。

10-08 15:10