• Eclipse插件开发中遇到的一些异常总结


    Eclipse插件开发涉及到的方面很广,有时候遇到一些奇怪的错误也很多,以下是我在Eclipse插件开发中遇到一些特别异常后的一些解决方 法,这些一些是来自网上搜索到的,一些是自己的总结。这篇随笔将会做为我的积累不断地更新,也希望能帮到一些遇到相同问题的coder们!

     
    1."org.eclipse.ui.PartInitException: Unable to open editor, unknown editor ID: package.class"处理方法
    报错原因:plugin.xml中<extension>标签中没有icon项
       <extension
             point="org.eclipse.ui.editors">
          <editor
                class="testrcp.testeditor"
                id="testrcp.testeditor"
                name="New EditorPart">
          </editor>
       </extension>
    解决方法:plugin.xml中<extension>加入icon,该项可以为空。
       <extension
             point="org.eclipse.ui.editors">
          <editor
                class="testrcp.testeditor"
                icon=""
                id="testrcp.testeditor"
                name="New EditorPart">
          </editor>
       </extension>

    2."org.eclipse.ui.PartInitException: Editor initialization failed: package.class.  Site is incorrect."处理方法

    报错原因:EditorPart类的init()未实现
    解决方法:实现init()方法如下  
        public void init(IEditorSite site, IEditorInput input)
                throws PartInitException {
           
            System.out.println(input.toString());
            this.setInput(input);
            this.setSite(site);
       
        }

    3."org.eclipse.core.runtime.AssertionFailedException: null argument:A part's title tool tip must be non-null"处理方法

    报错原因:EditorInput类的getToolTipText()返回值为null
    解决方法:重写getToolTipText()方法return值可以为""或任意字符类型。
        public String getToolTipText() {
            return "";

        }

    4.文件资源不同步的处理方法

    很多时候我们在开发Eclipse程序时,如果对于文件操作没有采用IFile来进行,而是使用java.io.File,亦或者通过第三方的程序去修改 文件资源,那么就会引发实际文件与IFile不同步的问题,因为性能的问题,IFile的信息是做了缓存的,所以一般情况下对文件进行操作首先考虑使用 IFile本身提供的方法或者Eclipse里提供的一些工具类来进行。但我们并不总是能够保证文件的操作是我们所想的,那么如何判断一个IFile是否 和文件系统同步呢?
    解决方法:比较文件的IFile对象和java.io.File对象的时间戳,如果不相同,那么刷新IFile对象。
     if(IFile.getLocalTimeStamp() != File.lastModified()) {
         IFile.refreshLocal(int depth, IProgressMonitor monitor);

    }

    5.扩展SWT的widgets出现"org.eclipse.swt.SWTException: Subclassing not allowed" 的处理方法

    报错原因:Eclipse有这样句话“Custom widgets are created by subclassing in the existing widget class hierarchy”,意思是扩展widgets的类必须和widgets类是在同一类层次才行。
    解决方法:有两种,第一种是将你扩展的类的包改为改成package org.eclipse.swt.widgets,即widgets类在同个类层次;
                             第二种扩展类重写widgets类中进行类层次检查的方法protected void checkSubclass(),做空实现即可。

  • 相关阅读:
    学习&分享
    跳槽
    20121113:延期通知书
    2012.9.9 baocheng博客园正式与大家见面啦!
    数据库
    ASP.Net模板引擎
    javascript图片切换效果
    dockercompose环境下zookeeper单机搭建、集群搭建
    Linux服务器日常巡检脚本
    MMOS FFB伺服直驱方向盘主控板DIY
  • 原文地址:https://www.cnblogs.com/okuc/p/4149344.html
Copyright © 2020-2023  润新知