使用Unity中的JNI文件导入java项目时出现UnsatisfiedLinkError

时间:2018-05-01 04:22:13

标签: android unity3d sdk java-native-interface

尝试使用JNI文件(lib-native.so本机库)导入android库(.aar)时出现此错误。

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.cryogeneye.test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.cryogeneye.test-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libnative-lib.so"
                                              java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.cryogeneye.test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.cryogeneye.test-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libnative-lib.so"
                                                  at java.lang.Runtime.loadLibrary(Runtime.java:366)
                                                  at java.lang.System.loadLibrary(System.java:988)
                                                  at android.example.com.arsdkdevop.TrillCoreSDK.<clinit>(TrillCoreSDK.java:123)
                                                  at java.lang.Class.classForName(Native Method)
                                                  at java.lang.Class.forName(Class.java:309)
                                                  at java.lang.Class.forName(Class.java:273)
                                                  at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
                                                  at com.unity3d.player.UnityPlayer.c(Unknown Source)
                                                at com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknow

虽然同一个库(.aar)在新的android项目上工作正常。

我的目标是在Unity Project中导入包含JNI文件(.so)的android库(.aar)。

1 个答案:

答案 0 :(得分:0)

这可能对其他人有用。

在项目中使用aar时,您的项目不会获得这些 .so 文件。至少在我看来是这样。

仅使用aar的新项目就可以发挥作用,但是当我添加任何外部库时,它将引发相同的异常。 我将导出项目中拥有的所有jniLib添加到了新项目中,之后一切都很好。

这是添加jniLib后我的结构的样子。

这是我的摇篮。