我有一个使用的 gradle 项目j2v8_android 2.2.1 http://mvnrepository.com/artifact/com.eclipsesource.j2v8/j2v8_android/2.2.1库(为 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
and libj2v8_android_x86.so
)。如果我理解正确,这些文件的名称和位置是正确的,应该可以解决它们。
该应用程序由以下人员编译和打包Gradle 2.2.1
(on Oracle JVM 1.8.0_45
) with Android SDK 19
兼容性(具有语言级别支持1.7
)并执行于Hudl2
跑步Android 4.4.2
.
在与我的大学交谈后,我们找到了解决方案。路径类加载器实际上并不在类加载器的根目录下查找apk
- 相反,它看起来在libs/[ARCHITECTURE]
。移动libj2v8_android_x86.so
文件至libs/x86
重新包装确实解决了问题。
我想 Maven 模块可能已打包为旧版本,因此没有将它们复制到构建时的正确目录中 - 或者可能只是配置错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)