问题: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
未添加依赖库,亲测有效。