如果没有发现编译期异常(就是导航栏项目上有红叉,红感叹号),那么Activator X for bundle Y is invalid和Activator not found这两个异常通常发生在eclipse3.6以及更老的RCP版本中。
未找到的原因是插件工程的build.properties文件下的bin.includes属性未包含“.”位置。
我们知道,build.properties文件是构建配置,它的属性最后会被添加到classpath中,如果没有添加".",则不会从“当前位置”查找类。
于是,要么类无法找到,要么equinox认为该bundle没有该Activator的访问权限,于是报出了之前的异常。
解决方案如下:
打开MANIFEST.MF编辑器,在Runtime签页的ClassPath位置,点击New,然后输入".",保存。
如果,ClassPath已经有了内容,把"."移动到最上方。
为什么eclipse3.7之后就没有这个问题了呢?
不是因为eclipse不再需要"."位置了,而是该编辑器自动为你添加了这个位置。
如果有编译期异常呢?
你发现很多项目都有莫名的红叉或者红色感叹号,怎么处理?
这种问题会发生在任何版本的eclipse中,它并不是BUG,而是你有某个常用的插件的ClassPath出错了。
首先关注红色感叹号的插件,它们的问题最严重,解决方式很简单:
1、打开MANIFEST.MF编辑器,检查Dependency和Runtime->Classpath。
2、项目上右键->build path->Configuration build path,检查Libraries内容。
检查不出来请复习Java基础知识。
如果这样还没有解决问题。那么问题大了,你需要排查插件。
1、随便找到一个插件,检查打开MANIFEST.MF编辑器,检查Dependencies签页内容。
2、看看哪些红叉插件是较为通用,就是依赖层级更高,双击它,继续检查它的Dependencies
3、如果有红叉存在,递归1操作,如果没有,解决本插件的问题。