plugin 的生命周期?

caeserwliu 2006-08-22 10:48:24
使用eclipse的向导创建plugin项目,自动生成一个项目的Activator类,
在作一个plugin demo时遇到一个问题,在init一个Preference调用下列语句时出错:
setPreferenceStore(Activator.getDefault().getPreferenceStore());
debug时发现是Activator.getDefault()的返回值为null。也就是说Activator没有初始化。plugin的生命周期不是从Activator开始的么?
Activator如下:
public class Activator extends AbstractUIPlugin {

public static final String PLUGIN_ID = "MyPluginDemo";

private static Activator plugin;

public Activator() {
super();
plugin = this;
}

public void start(BundleContext context) throws Exception {
super.start(context);
}

public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}

public static Activator getDefault() {
return plugin;
}

}
plugin的manifast.mf文件如下:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyPluginDemo Plug-in
Bundle-SymbolicName: MyPluginDemo;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: myplugindemo.Activator
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Eclipse-LazyStart: false

这个问题该如何解决?eclipse plugin的生命周期到底是怎么样的?

谢谢各位大虾!
...全文
244 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
domino_question 2006-09-24
  • 打赏
  • 举报
回复
can you set a breakpoint in the plugin construtor?

Here is a sample manifest:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Favorites Plug-in
Bundle-SymbolicName: com.qualityeclipse.favorites; singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: favorites.jar
Bundle-Activator: com.qualityeclipse.favorites.FavoritesPlugin
Bundle-Vendor: Quality Eclipse
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.jface.text,
org.eclipse.ui,
org.eclipse.ui.views,
org.eclipse.ui.editors,
org.eclipse.ui.ide,
org.eclipse.ui.workbench.texteditor,
org.eclipse.jdt.core,
org.eclipse.jdt.ui
Eclipse-AutoStart: true
Export-Package: com.qualityeclipse.favorites.actions,
com.qualityeclipse.favorites.model,
com.qualityeclipse.favorites.views

I found:
Eclipse-AutoStart: true

Is it the reason?
caeserwliu 2006-08-22
  • 打赏
  • 举报
回复
顶一下
caeserwliu 2006-08-22
  • 打赏
  • 举报
回复
在线等,各位路过的帮忙顶一下,谢谢
caeserwliu 2006-08-22
  • 打赏
  • 举报
回复
附上plugin.xml,除preference之外都运行良好:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="myplugin demo"
icon="icons/selectall.gif"
class="myplugindemo.SamplePerspective"
id="myplugindemo.SamplePerspective">
</perspective>
</extension>
<extension
point="org.eclipse.ui.views">
<category
name="myplugin demo 视图"
id="myplugindemo.view">
</category>
<view
name="view 1"
icon="icons/prev.gif"
category="myplugindemo.view"
class="myplugindemo.View1"
id="myplugindemo.View1">
</view>
<view
name="view 2"
icon="icons/project.gif"
category="myplugindemo.view"
class="myplugindemo.View2"
id="myplugindemo.View2">
</view>
</extension>
<extension
point="org.eclipse.ui.editors">
<editor
name="中国 editor"
icon="icons/project.gif"
class="myplugindemo.ChinaEditor"
id="myplugindemo.ChinaEditor">
</editor>
<editor
name="US editor"
icon="icons/prev.gif"
class="myplugindemo.UsEditor"
id="myplugindemo.UsEditor">
</editor>
<editor
name="France editor"
icon="icons/remove.gif"
class="myplugindemo.FranceEditor"
id="myplugindemo.FranceEditor">
</editor>
</extension>
<extension
point="org.eclipse.ui.preferencePages">
<page
name="myplugindemo config"
class="myplugindemo.preferences.RootPreferencePage"
id="myplugindemo.preferences.RootPreferencePage">
</page>
<page
name="DB config"
category="myplugindemo.preferences.RootPreferencePage"
class="myplugindemo.preferences.DBPreferencePage"
id="myplugindemo.preferences.DBPreferencePage">
</page>
</extension>
</plugin>

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧