【问题标题】:Can't load vlcjni library: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList couldn't find "libvlcjni.so"无法加载 vlcjni 库:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader [DexPathList 找不到“libvlcjni.so”
【发布时间】:2018-03-15 07:30:53
【问题描述】:

在扩展对 Android 6.0+ 的支持之后。

应用程序在使用VLC-SDK 播放视频时崩溃。

之前我们根据项目需要对 SDK 库进行了一些更改。因此无法在 vlc-SDK 中进行更改。

我尝试了以下解决方案:

  1. 添加 ABI 过滤器。
  2. 在项目中添加 gradle.properties 文件。
  3. 在 gradle.properties 中添加 android.useDeprecatedNdk=true;
  4. 在 build.gradle 中添加 abi 过滤器。

【问题讨论】:

  • 为什么这个问题有C标签?
  • @lolbas 实际上我的项目中有 jni 库,其中包含 c 文件。但现在我已经删除了那个标签。
  • 我也有同样的问题你找到解决办法了吗
  • 你在什么设备上运行它?
  • @Jon 它在 android 5.0 及更低版本运行良好,但从 android 6.0 及更高版本崩溃

标签: android java-native-interface libvlc vlc-android


【解决方案1】:

这意味着在 APK 中找不到特定于正在运行的设备的已编译 abi 二进制文件。首先使用 APK Analyzer 检查 Android Studio 中的 APK(或者只是将 APK 从内部 app/build/outputs/apk/ 拖到中间)并在 lib/ 文件夹中查看已编译的 abi。如果您的设备 abi 未列在 lib/ 文件夹中,那么这就是您的错误的原因,如果它丢失(通常在 .externalNative 中),应该在生成的构建文件中进行进一步检查。

【讨论】:

  • 我们知道我们缺少这些 abis。但这对我们如何解决这个 .so 生成问题会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2018-03-14
  • 2015-02-04
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多