未调用Eclipse插件激活器的启动方法

瓦伦·拉瓦尔(Varun Raval)

我正在制作一个插件以在Eclipse 4.x中提供“首选项页面”。

我遵循了Vogella-Preferences上的本教程

页面的问题在于,一旦我输入了一次值,然后退出,然后重新打开“首选项”,就不会保留值。可能的原因可能是未指定PreferenceStore。

以下是“首选项”页面的代码:

import com.varun.preference.main.Activator;

public class EASEPreferences extends FieldEditorPreferencePage 
                implements IWorkbenchPreferencePage {

    public EASEPreferences(){
        super(GRID);
    }

    @Override
    public void init(IWorkbench workbench) {

        setPreferenceStore(getPreferenceStore());
//      setPreferenceStore(Activator.getDefault().getPreferenceStore());
        setDescription("Final Implementation");
    }

    @Override
    protected void createFieldEditors() {

        addField(new DirectoryFieldEditor("PATH", "Get &Default Keystore:",
                getFieldEditorParent()));

        addField(new BooleanFieldEditor("BOOLEAN_VALUE",
            "&Automatically run scripts that are not signed(Not Recommended)", 
            getFieldEditorParent()));
    }
}

目前,代码正在运行,首选项页面可见,但尚未保存。

如果我取消注释init方法的第二行并先注释,则错误提示

com.varun.preference.page_final.EASEPreferences.init中的java.lang.NullPointerException(EASEPreferences.java:24)

Activator.java如下

public class Activator extends AbstractUIPlugin {

    public static Activator plugin;
    public static BundleContext context;

    public Activator() {
    }

    @Override
    public void start(BundleContext context){

        Activator.context = context;
        System.out.println("---InStart---");
        plugin = this;
    }

    @Override
    public void stop(BundleContext context){

        Activator.context = null;
    }

    public static Activator getDefault(){

        return plugin;
    }

}

在这里,我假定的是运行插件时不会调用start方法,因为println语句未得到打印。

我在激活器上缺少什么吗?

我的Manifest.mf文件是:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Final
Bundle-SymbolicName: com.varun.preference.page.final;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: VARUN
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Bundle-Activator: com.varun.preference.main.Activator

我没有使用任何产品或功能。这是一个简单的插件。

Eclipse版本:4.5.2

谢谢。

乔纳·格雷厄姆(Jonah Graham)

您的问题是您尚未检查:配置中加载其插件之一时激活此插件MANIFEST.MF检查添加:

Bundle-ActivationPolicy: lazy

到您的MANIFEST.MF一切,然后一切正常。

有了Bundle-ActivationPolicy: lazy它意味着您不必显式启动捆绑软件,这是一件好事。在Eclipse中,您希望尽可能地懒惰,并且启动捆绑包就是一个很好的例子。

阅读有关跟踪启动生命周期的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未调用Eclipse插件激活器的启动方法

来自分类Dev

导出eclipse插件后激活器未启动

来自分类Dev

在UI线程上运行Eclipse插件激活器的.start()方法

来自分类Dev

如何停止从Eclipse Gradle插件启动的Tomcat服务器?

来自分类Dev

Eclipse插件未执行

来自分类Dev

Eclipse 插件:永远不会调用属性测试器

来自分类Dev

使用cmd启动激活器

来自分类Dev

使用所需的插件启动Eclipse

来自分类Dev

系统未启动 - 无法激活交换 /swapfile

来自分类Dev

未调用拦截器方法

来自分类Dev

控制器方法未调用

来自分类Dev

NSNotificationCenter选择器方法未调用

来自分类Dev

控制器方法未调用

来自分类Dev

Eclipse 插件未自动加载

来自分类Dev

用于Eclipse的Google插件-Eclipse无法启动

来自分类Dev

Scala编译器插件重写方法调用

来自分类Dev

如何制作启动器以激活Wifi

来自分类Dev

Maven在基本Eclipse插件上安装tycho本机启动器问题

来自分类Dev

如何调用插件方法

来自分类Dev

Eclipse Luna:未调用处理程序的@CanExecute方法

来自分类Dev

如何为Eclipse激活EPIC Perl插件的功能

来自分类Dev

$ .ajax方法未调用控制器操作方法

来自分类Dev

$ .ajax方法未调用控制器操作方法

来自分类Dev

服务激活器没有被调用

来自分类Dev

Eclipse插件:启动后立即运行代码

来自分类Dev

安装插件后,Eclipse Mars无法启动

来自分类Dev

Eclipse命令关闭/启动我的插件

来自分类Dev

未调用访问器

来自分类Dev

Eclipse Scala插件未显示Scala项目中的类和方法的文档