我正在尝试使用片段项目扩展第三方 Eclipse 插件。主要原因是第三方插件包含具有默认(包)修饰符的类,我需要扩展它们。
因此,我的扩展类必须位于完全相同的包中。我创建了一个包含相同包的片段项目,并将我的类放入其中。当我使用运行时工作区时,一切正常。
但是,如果我尝试部署我的片段(例如,将其部署到我的 Eclipse 发行版的 dropins 文件夹中),我将无法执行代码。扩展和类似的东西工作正常(例如,我将扩展用于新的运行配置。但是,如果我尝试实例化此运行配置,则会收到一条错误消息,指出第三方根插件无法加载类以显示我的配置选项卡组。
有遇到过这类问题吗?
对不起,但这不起作用。除非主机捆绑包是专门为其创建的,否则无法从片段覆盖主机中的类。原因是资源(包括类)在任何片段之前从主机检索
。有关实现,请参阅org.eclipse.osgi.baseadaptor.loader.ClasspathManager
。.
实际上,这是我正在使用的扩展代码:
<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
<launchConfigurationTabGroup
class="com.android.ide.eclipse.adt.internal.launch.jouleunit.AndroidJouleUnitTabGroup"
id="com.android.ide.eclipse.adt.jouleunit.AndroidJouleUnitLaunchConfigTabGroup"
type="com.android.ide.eclipse.adt.jouleunit.launchConfigurationType">
</launchConfigurationTabGroup>
当然,还有进一步的扩展来定义启动配置类型等,但这是导致 Eclipse 找不到的类的扩展。
我现在为自己找到了问题。问题是配置错误的构建属性文件,该文件从我的片段 JAR 中排除了 Java 字节代码。非常痒,因为这些类在 JAR 中,但在错误的子目录中。