最近升级到了Andoroid Studio 4.0,然后开发插件时遇到的一个小问题
本来一切流程照常,和以前创建Android原生插件一样新建了Module,但是跑起来的时候,调用任何原生方法都报这个错
代码、详细报错如下
java.lang.Class"\<"com.fenger.uniplugin.uniplugin_easyprotector.easyProtector> is not accessible from java.lang.Class"\<"com.taobao.weex.common.TypeModuleFactory>
2020-07-15 12:44:26.429 2905-2960/com.dapaoxiaoyingxiong.game E/weex: easy-protector module build instace failed.java.lang.IllegalAccessException: java.lang.Class<com.fenger.uniplugin.uniplugin_easyprotector.easyProtector> is not accessible from java.lang.Class<com.taobao.weex.common.TypeModuleFactory>
at java.lang.Class.newInstance(Native Method)
at com.taobao.weex.common.TypeModuleFactory.buildInstance(TypeModuleFactory.java:79)
at com.taobao.weex.bridge.WXModuleManager.findModule(WXModuleManager.java:284)
at com.taobao.weex.bridge.WXModuleManager.callModuleMethod(WXModuleManager.java:213)
at com.taobao.weex.bridge.WXBridgeManager.callModuleMethod(WXBridgeManager.java:518)
at com.taobao.weex.bridge.WXBridgeManager.callNativeModule(WXBridgeManager.java:700)
at com.taobao.weex.bridge.WXBridge.callNativeModule(WXBridge.java:371)
at com.taobao.weex.base.SystemMessageHandler.nativeRunWork(Native Method)
at com.taobao.weex.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:104)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:173)
at android.os.HandlerThread.run(HandlerThread.java:65)
看提示以为是继承出了问题
但是修改为继承:com.taobao.weex.common.WXModule 还是 com.taobao.weex.WXSDKEngine.DestroyableModule 都还仍然报这个错
折腾了几个小时后,仔细对比,发现和以前自己开发的插件 只有一个差别:
以前的Module建的Class ide自动使用了public修饰
升级到了Andoroid Studio 4.0后,ide默认没有public修饰Class
遂用public 修饰 Class之后,一切调用运行正常
很隐蔽的一个小坑,记录一下
0 个评论
要回复文章请先登录或注册