天天看點

解決Activator X for bundle Y is invalid 以及 Activator not found

如果沒有發現編譯期異常(就是導航欄項目上有紅叉,紅感歎号),那麼Activator X for bundle Y is invalid和Activator not found這兩個異常通常發生在eclipse3.6以及更老的RCP版本中。

未找到的原因是插件工程的build.properties檔案下的bin.includes屬性未包含“.”位置。

我們知道,build.properties檔案是建構配置,它的屬性最後會被添加到classpath中,如果沒有添加".",則不會從“目前位置”查找類。

于是,要麼類無法找到,要麼equinox認為該bundle沒有該Activator的通路權限,于是報出了之前的異常。

解決方案如下:

解決Activator X for bundle Y is invalid 以及 Activator not found

打開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操作,如果沒有,解決本插件的問題。

繼續閱讀