我正在按照官方文档here
创建一个nativescript插件我创建了.aar文件并将其复制到platforms/android
文件夹中,当我调用插件类时该文件夹将起作用。我面临的问题是当我尝试调用加载本机库的函数时,给了我UnsatisfiedLinkError
。
我已经看过这些链接1 2并尝试了所有提到的选项,但是它们似乎都不起作用。由于这些链接已经使用了两年,所以我想知道现在是否不赞成使用这些方法。
我的tns版本是4.1.2,tns-android是4.1.3。
我尝试将* .so文件添加到以下文件夹:
platforms/android
platforms/android/libs
platforms/android/libs/armeabi
platforms/android/libs/jni
platforms/android/libs/jni/armeabi
platforms/android/armeabi
platforms/android/jni
platforms/android/jni/armeabi
platforms/android/jniLibs
platforms/android/jniLibs/armeabi
如您所见,我已经根据以前的帖子尝试了所有可能的组合(我的* .so文件用于armeabi体系结构)
请注意,唯一不会失败的案例是platforms/android/jniLibs/armeabi
。尝试此操作时,我收到一条错误消息,告诉我在调用tns debug android
时一个.so文件被重复(合并冲突),而另一个在我调用函数时在运行时失败
答案 0 :(得分:0)
我相信链接器错误完全来自您的本机库。您的从插件到本地Java类的调用在这里成功了,从Java到C似乎是问题所在。
您是否验证了本机库(.so文件)是否已成功编译,可能是通过将其导入一个简单的Android应用程序来完成的?如果仍然失败,则与{N}运行时无关,但可能与NDK编译有关。