【问题标题】:Couldn't load (find) j2v8_android_x86 library无法加载(查找)j2v8_android_x86 库
【发布时间】:2023-03-14 07:05:02
【问题描述】:

我有一个使用 j2v8_android 2.2.1 库的 gradle 项目(它为 V8 JS 引擎提供 Java 绑定 - android 端口)。不幸的是,在执行项目后(构建成功没有问题),我得到一个与缺少j2v8_android_x86 库文件相关的异常。尝试创建 V8 运行时时会出现问题:

V8 runtime = V8.createV8Runtime();

异常本身是:

Caused by: java.lang.IllegalStateException: J2V8 native library not loaded.
        at com.eclipsesource.v8.V8.checkNativeLibraryLoaded(V8.java:86)
        at com.eclipsesource.v8.V8.createV8Runtime(V8.java:74)
        at com.eclipsesource.v8.V8.createV8Runtime(V8.java:63)
        (...)
Caused by: java.lang.UnsatisfiedLinkError: Could not load J2V8 library. Reasons:
Couldn't load j2v8_android_x86 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.androidscripting.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.androidscripting.app-1, /vendor/lib, /system/lib, /system/lib/arm]]]: findLibrary returned null
        at com.eclipsesource.v8.LibraryLoader.loadLibrary(LibraryLoader.java:71)
        at com.eclipsesource.v8.V8.load(V8.java:49)
        at com.eclipsesource.v8.V8.createV8Runtime(V8.java:72)
        ... 17 more

当我调查apk 时,我看到apk 的根目录中有两个库文件(libj2v8_android_armv7l.so 和libj2v8_android_x86.so)。如果我理解正确,这些文件的名称和位置是正确的,应该解决它们。

应用程序由Gradle 2.2.1(在Oracle JVM 1.8.0_45)编译和打包,与Android SDK 19兼容(语言级别支持1.7)并在Hudl2上运行Android 4.4.2。

【问题讨论】:

  • 不确定它是否会有所作为,但您是否尝试过在 Java 7 下编译?
  • @DeadChex 刚刚尝试使用 Oracle 的 jdk 1.7.0_75 - 同样的问题 :(
  • 你是在真机还是模拟器上运行? j2v8_android_x86 显然是桌面的东西,设备会使用以arm 结尾的东西。
  • @18446744073709551615 如前所述,我在Hudl2 和Android 4.4.2 上运行它。 j2v8_android_x86 是j2v8 的android 特定端口,特定于在x86 架构下运行的设备(一些现代设备使用intel 芯片组而不是arm,并且通常会执行x86 指令集)。

标签: java android android-ndk apk j2v8


【解决方案1】:

在与我的大学交谈后,我们找到了解决方案。路径类加载器实际上并不在 apk 的根下查找 - 而是在 libs/[ARCHITECTURE] 中查找。将libj2v8_android_x86.so 文件移动到libs/x86 并重新打包确实解决了问题。

我想 maven 模块可能是为旧版本打包的,因此在构建时没有将它们复制到正确的目录中 - 或者可能只是配置错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2019-08-18
    • 2018-03-14
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    相关资源
    最近更新 更多