将 .so 文件添加到 Cordova 插件
Posted
技术标签:
【中文标题】将 .so 文件添加到 Cordova 插件【英文标题】:Add .so files to Cordova Plugin 【发布时间】:2018-07-17 20:27:33 【问题描述】:我为我的 Ionic 应用程序开发了一个 Cordova 插件,访问时会引发以下错误:
java.lang.UnstatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList [[zip 文件“/data/app/io.ionic.starter-2/base.apk”], nativeLibraryDirectories=[/data/app/io.ionic.starter-2/lib/arm/, /vendor/lib, /system/lib]]] 找不到“libserial_port.so”
我已将 libserial_port.so
文件放在 libs 文件夹中,位于此路径:pluginName\src\android\libs\armeabi\libserial_port.so
。
然后,在plugin.xml
中,我尝试将其加载为资源文件:
<resource-file src="src/android/libs/armeabi/libserial_port.so" target="src/android/libs"/>
作为一个 lib 文件:
<lib-file src="src/android/libs/armeabi/libserial_port.so" />
但是,错误仍然出现。我该怎么做才能让应用看到那个库?
【问题讨论】:
我在使用 Cordova 8 (Cordova-Android 7) 后也遇到了同样的问题。你能解决吗? @manjunathkallannavar 我也面临这个问题。您是否能够解决或解决该问题? 我能够解决这个问题。在 jniLibs 和 lib 中添加 .so 文件,并根据您的 cordova 版本删除它们中的任何一个 【参考方案1】:我可以通过将库重命名为 jniLibs 来解决此问题。
改变
<resource-file src="src/android/libs/armeabi/libserial_port.so" target="libs/armeabi/libserial_port.so">
到
<resource-file src="src/android/libs/armeabi/libserial_port.so" target="jniLibs/armeabi/libserial_port.so">
还阅读了我对类似问题的回答Unable to run Android app after updating to cordova android 7.0.0
【讨论】:
以上是关于将 .so 文件添加到 Cordova 插件的主要内容,如果未能解决你的问题,请参考以下文章
将cordova文件插件添加到现有ios项目时重复符号_kCDVFilesystemURLPrefix