腾讯shadow嵌入问题
嵌入过程可参考:Android Tencent Shadow 插件接入指南
问题一:
Unable to instantiate service com.gtja.supportlib.shadow.MainPluginProcessService: java.lang.RuntimeException: 没有找到 ILoggerFactory 实现,请先调用setILoggerFactory
java.lang.RuntimeException: java.util.concurrent.TimeoutException: 连接Service超时 ,等待了:10001
两个报错同一个问题:
思路:搜索这个报错 是哪报的?LoggerFactory.getILoggerFactory() 根据提示要先调用setILoggerFactory
setILoggerFactory是在初始化第一行LoggerFactory.setILoggerFactory(new AndroidLogLoggerFactory());
解决: 和demo比对了一下 demo是Application oncreate直接调用 ,一般的项目为了防止application初始化多次调用 会判断是否在主进程中才去初始化一些三方sdk,将shadow初始化 放在这段判断逻辑外面和demo保持一致即可。
原因:应该是 volatile private static ILoggerFactory sILoggerFactory 静态变量在进程之间不共享,所以仅仅初始化主进程的话,在plugin进程仍然为null