Mozilla XPCOM组件开发常见错误解决方法
关键字: xpcom最近做Firefox的开发,一直在用javascript写XPCOM组件,javascript这个东东来写XPCOM非常痛苦,有一点错误都无法注册成功,许多时候基本靠肉眼一个单词一个单词的找,当然也有一些技巧。Firefox开发最常用的工具有firebug,javascript Debug和XPCOMViewer,使用XPCOMViewer来查看已注册的组件。
常见的错误:
一、死活注册不上:
注释掉其他方法和成员变量,只保留QueryInterface方法,这样基本都会注册成功了,一旦注册成功,取消掉注释,就可以使用javascript Debug来调试了。
二、查看XPCOM Viewer(点击要找的XPCOM展开树)发现该XPCOM没有实现指定的接口或者莫名其妙的实现了没有指定的接口:
没有实现接口: 一般可能idl的接口没有实现nsISupports导致
实现了没有指定的接口:一班可能是copy别的代码,uuid重复导致
三、Cc["@company.name;1"].getService(Ci.interfaceName)或Cc["@company.name;1"].createInstance(Ci.interfaceName)出现错误,这里的Cc(Components.classes)Ci(Components.interface):
Cc["@company.name;1"] has no properties 说明中括号中组件Constract ID写错或者组件没有注册成功
Invalid InterfaceID: 说明Ci中括号中的名字写错,或者没有该接口(可以通过XPCOM Viewer查看现有的接口)
四、参数不匹配
IDL的声明参数和实际传递的参数不匹配,特别修改过参数,是注册的接口没有更新,这时候最难发现
五、已注册上组件每次在删除掉xpti.dat和compreg.dat后又注册不上,但也找不到问题所在,可以试一试在原来的代码
加减一空行,以示改变,这样可能会被注册成功。
【待续】
- 19:03
- 浏览 (2193)
- 评论 (0)
- 分类: Firefox plugin/XPCOM
- 相关推荐
发表评论
我的相册
共 9 张
最近加入圈子
链接
最新评论
-
总结一下本学期读的书
Spring 框架高级编程 [译] 楼主你太 ...
-- by fantasybei -
struts2 OGNL实例化数组的 ...
goodfifa07 写道请问楼主怎么捕获用数组发生的异常把logger级别调到 ...
-- by fuliang -
struts2 OGNL实例化数组的 ...
请问楼主怎么捕获用数组发生的异常
-- by goodfifa07 -
Java nio(三)
不错哦最近项目要用 可以向你请教此类的问题么 我的QQ1067302 希望能得到 ...
-- by bojianpc -
使用Struts2+Spring+Hiber ...
谢谢你的代码 我是一个初学者 ,没有什么资格说什么. 感谢.
-- by huobao89







评论排行榜