bundle的激活器无效

pen*_*uru 16 java eclipse osgi eclipse-plugin osgi-bundle

我正试图在eclipse中创建一个简单的插件.当我运行应用程序时,我在日志文件中看到此错误:

org.osgi.framework.BundleException:bundle org.xy的bundle org.xyActivator的激活器无效.

你对这个错误有任何想法吗?

Von*_*onC 17

检查你的build.properties部分

如果它没有正确指定最终二进制结果中应该包含的内容,则它将不起作用.检查.class文件是MANIFEST.MF所说的.


来自EclipseZone,此错误消息的另一个原因:

如果你在日志中看到一条消息就像

 The activator org.example.FooActivator for bundle org.example.foo is invalid 
Run Code Online (Sandbox Code Playgroud)

,这通常意味着ClassNotFoundException在它甚至到达start()方法之前,首先尝试加载类.


penguru补充道:

当我尝试从激活器类的构造函数中的任何其他类创建新对象时发生错误.在激活器插件中创建对象不合法吗?

  • 如果该类如果来自另一个尚未"激活"的插件,则可能是您的问题.
  • 如果找不到该类,那也会使插件激活器失效.

基本忠告:你可能会与你的初始化在做更好start()的方法Activator,而不是它的构造.

  • 我在使用断点长时间调试会话后发现了这个bug :)在代码的某处,我尝试将一个元素添加到null数组列表中!我专注于捆绑错误,无法看到它.此外,阵列列表也没有例外.但是,非常有趣的是,如果我不使用断点,则调试会话不会进入包含该错误的类.当我尝试创建对象时,调试会话以异常终止.所以,我们可以说这正是ClassNotFoundException :) (4认同)