将.so文件添加到Cordova插件 [英] Add .so files to Cordova Plugin
问题描述
我为我的Ionic app开发了一个Cordova插件,在访问时会抛出以下错误:
I have developed a Cordova Plugin for my Ionic app, which throws the following error when accessed:
java.lang.UnstatisfiedLinkError: dalvik.system.PathClassLoader
[DexPathList [[zip file/data/app/io.ionic.starter-2/base.apk],
nativeLibraryDirectories = [/ data / app / io.ionic .starter-2 / lib / arm /,
/ vendor / lib,/ system / lib]]]找不到libserial_port.so
java.lang.UnstatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList [[zip file "/data/app/io.ionic.starter-2/base.apk"], nativeLibraryDirectories=[/data/app/io.ionic.starter-2/lib/arm/, /vendor/lib, /system/lib]]] couldn't find "libserial_port.so"
我在libs文件夹中的 pluginName \\\ android \libs\armeabi \libserial_port.so
。
I've put libserial_port.so
file in the libs folder, at this path: pluginName\src\android\libs\armeabi\libserial_port.so
.
然后,在 plugin.xml
我试图将它作为资源文件加载:
Then, in plugin.xml
I've tried to load it both as a resource file:
< resource-file src =src / android / libs / armeabi / libserial_port.sotarget =src / android / libs/>
以及作为lib文件:
< lib-file src =src / android / libs / armeabi / libserial_port.so/>
然而,错误仍然出现。如何让应用程序查看该库?
However, the error still appears. What shall I do for the app to see that library?
推荐答案
我可以通过将libs重命名为jniLibs来解决此问题。
I am able to resolve this issue by renaming libs to jniLibs.
更改
< resource-file src =src / android / libs /armeabi/libserial_port.so\"target =libs / armeabi / libserial_port.so>
to
< resource-file src =src / android / libs / armeabi / libserial_port.sotarget =jniLibs / armeabi / libserial_port.so>
也阅读类似问题的答案更新到cordova android 7.0.0后无法运行Android应用程序
also read my answer with similar issue Unable to run Android app after updating to cordova android 7.0.0
这篇关于将.so文件添加到Cordova插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!