问题: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问题
|