uniapp 调用原生插件包含第三方SDK时抛NoClassDefFoundError异常

问题:uniapp 在调用原生插件,插件中包含第三方 SDK时抛出 NoClassDefFoundError异常

因为我的原生插件是自己封装的 *.arr文件,用到了common-net 的插件,在执行 Make Module 后在uniapp 项目中引用,在打包自定义基座时抛出异常:NoClassDefFoundError

解决办法

修改module -> telnet -> build.gradle 中的 compileOnly改为 implementation:
我引用的是 commons-net-3.8.0.jar
之前的代码:

dependencies {
    compileOnly fileTree(include: ['commons-net-3.8.0.jar'], dir: './libs') //引如的第3方插件,将compileOnly修改为implementation
}

修改后:

dependencies {
    implementation fileTree(include: ['commons-net-3.8.0.jar'], dir: './libs')
}

如图:
在这里插入图片描述
然后重新Make Module ,再引入项目就可以了。

注意:我的插件 commons-net-3.8.0.jar 是在本地lib中引入,在 uniapp的项目中nativeplugins —> telnet —> package.json的 dependencies未添加依赖库,亲测有效。

参考:uniapp调用原生插件包含第三方SDK时抛NoClassDefFoundError异常

其他解决办法:参考uniapp之Android插件开发,引入第三方的库的NoClassDefFoundError问题

猜你喜欢

转载自blog.csdn.net/weixin_41767649/article/details/124378765