为CST扩展名XML文件添加content type时遇描述器创建失败错误
解决Eclipse自定义XML内容类型(CST扩展名)的描述器创建失败问题
遇到的错误:
Could not create content describer for com.example.cstfile. Content type has been disabled.
结合你提供的plugin.xml内容,问题主要出在以下几个方面,对应解决方案如下:
1. 修正Content Type的ID
错误提示中的ID是com.example.cstfile,但你定义的content-type id是cstfile——Eclipse要求content type的ID必须是插件ID+本地ID的全限定格式。假设你的插件ID是com.example,需要把content-type的id改为com.example.cstfile。
2. 移除冲突的文件关联
你同时给org.eclipse.core.runtime.xml关联了cst扩展名,又自定义了继承该类型的CST内容类型,这会触发识别优先级冲突。直接删除<file-association>节点即可。
3. 调整优先级确保优先识别
将content-type的priority设为high,让自定义类型优先于默认XML类型被识别。
修改后的plugin.xml示例
<extension point="org.eclipse.core.contenttype.contentTypes"> <content-type base-type="org.eclipse.core.runtime.xml" file-extensions="cst,xml" id="com.example.cstfile" name="CST File" priority="high"> <describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber2" plugin="org.eclipse.core.runtime"> <parameter name="elementNames" value="CSTFile"/> </describer> </content-type> </extension>
额外检查步骤
- 确认插件MANIFEST.MF中已添加对
org.eclipse.core.runtime的依赖,否则无法加载描述器类。 - 清理Eclipse缓存:删除工作区
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.contenttype.settings文件,重启Eclipse,避免缓存的旧配置干扰。
内容的提问来源于stack exchange,提问作者Sangli
相关产品推荐
相关产品推荐

