捆绑包的激活器无效

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

org.osgi.framework.BundleException : bundle org.x.y.Activator for bundle org.x.y 的激活器无效。

您对此错误有任何想法吗?


答案 1

检查构建属性部分

如果它没有正确指定最终二进制结果中应该包含的内容,它将不起作用。检查.class文件是否在清单中。MF说他们会的。


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

如果您在日志中看到一条消息,例如

 The activator org.example.FooActivator for bundle org.example.foo is invalid 

,那么这通常意味着在它到达start()方法之前,已经尝试首先加载该类。ClassNotFoundException


彭谷如补充道:

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

  • 如果该类来自另一个尚未“激活”的插件,则可能是您的问题。
  • 如果未找到该类,则也会使您的插件激活器无效。

基本建议:在 start() 方法中而不是其构造函数中完成初始化可能会更好。Activator


答案 2

在从不同的工作区导入插件时,我也遇到了同样的问题。基本上,它是框架在加载类时查找的捆绑包类路径。导入到其他工作区时,请确保将类路径更改为指向适当的位置,即类文件所在的位置。

修改类路径后,请尝试清理并重新生成并重新运行。它应该工作..希望。。


推荐