将 .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

如何将第三方 SDK 正确添加到 Cordova 插件?

将Pod依赖项添加到cordova插件

无法将推送通知插件添加到 cordova

将定制的 cordova 插件添加到 IBM Worklight 6.1

如何从 Cordova 插件添加本机视图