[已删除]
[已删除]
  • 发布:2020-07-15 13:15
  • 更新:2020-07-15 13:15
  • 阅读:1659

开发Android插件,报错 is not accessible from ...TypeModuleFactory 问题解决方案

分类:HBuilderX

最近升级到了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 关注 分享

要回复文章请先登录注册