zoukankan      html  css  js  c++  java
  • 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(),做空实现即可。

  • 相关阅读:
    Javaweb之 servlet 开发具体解释1
    struts2_6_多个struts配置文件的应用
    PHP多种序列化/反序列化的方法
    CF459C Pashmak and Buses 打印全排列
    HDOJ 题目3564 Another LIS(线段树单点更新,LIS)
    Android UI开发第四十三篇——使用Property Animation实现墨迹天气3.0引导界面及动画实现
    [ACM] HDU 1533 Going Home (二分图最小权匹配,KM算法)
    POJ 3895 Cycles of Lanes (dfs)
    【iOS开发-51】案例学习:动画新写法、删除子视图、视图顺序、延迟方法、button多功能使用方法及icon图标和启动页设置
    iOS-代理托付的使用
  • 原文地址:https://www.cnblogs.com/okuc/p/4149344.html
Copyright © 2011-2022 走看看