1. eclipse用了段时间,对接的中心已经使用了android studio,告诉我插件无法启动,换个环境尝尝鲜吧
Mac下Android环境搭建(Android Studio)
2. 听说插件有问题,又不知道人家用的啥,赶快搜一把:
1). 携程的方案: 携程Android App插件化和动态加载实践 GitHub - CtripMobile/DynamicAPK: Solution to implement multi apk dynamic loading and hot fixing for Android App. (实现Android App多apk插件化和动态加载,支持资源分包和热修复)
2). 360: Android插件实例 GitHub - Qihoo360/DroidPlugin: A plugin framework on android
插件无法启动,反馈给我用的携程的那套方案,排查过程,看了下错误信息,
在排查的时候发现在无法启动插件的时候,系统报 waitpid failed,如果嫌日志多,就只看error,那么就错过了这个信息,所以呀,不能
怕麻烦啊!
通过走查代码发现,我们的开发人员将调试的代码 signal(SIGCHLD,sigign)误合入svn,这个意思是如果线程收到了这个信号,直接忽略,不会再传递给父进程。根据插件启动报的这个错误判断,dalvik虚拟机解释执行启动插件时,在4.4内核上启动插件的时候需要处理 sigchld这个信号,误合入的这句代码导致内核waitpid失败,所以无法启动。跟内核版本的处理机制有关,5.0上不存在这个问题。
解决方法: 去掉 signal(SIGCHLD,sigign),不要忽略SIGCHLD这个不需要的信号就行了。