エラーの内容
Jetpack SDK 0.4 で cfx コマンドのユーザ定義オプションを設定する 等にもあるように、Add-on SDKで開発する時は、専用のプロファイルを用意しておくと色々と楽。 (Jetpackは昔のAdd-on SDKの名前ね、JetpackでもAdd-on SDKでも、同じものを差していると思ってほぼ問題ないはず。)
バグなのか自分の使い方が悪いのか、しばらく使っているとAdd-on SDKから不可解なエラーメッセージが出力される時がある。
(addon-sdk-1.0b4)$ cfx test Using binary at '/Applications/Firefox.app/Contents/MacOS/firefox-bin'. Using profile at '/Users/ongaeshi/Library/Application Support/Firefox/Profiles/1k45yor8.develop'. Running tests on Firefox 4.0.1/Gecko 2.0.1 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under Darwin/x86_64-gcc3. .....................console: [JavaScript Warning: "'font' の値をパース中にエラーが発生しました。 このスタイル宣言は無視されました。" {file: "http://www.yahoo.co.jp/" line: 11}] console: [JavaScript Warning: "スタイル宣言であるべきところが '*' になっています。 これを無視して次のスタイル宣言を処理します。" {file: "http://www.yahoo.co.jp/" line: 11}] . . console: [JavaScript Warning: "'filter' の値をパース中にエラーが発生しました。 このスタイル宣言は無視されました。" {file: "http://www.yahoo.co.jp/" line: 11}] console: [JavaScript Warning: "スタイル宣言であるべきところが '*' になっています。 これを無視して次のスタイル宣言を処理します。" {file: "http://www.yahoo.co.jp/" line: 11}] . . console: [JavaScript Warning: "不明なプロパティ 'zoom' が使用されています。 このスタイル宣言は無視されました。" {file: "http://www.yahoo.co.jp/" line: 11}] . . console: [JavaScript Warning: "スタイル宣言であるべきところが '*' になっています。 これを無視して次のスタイル宣言を処理します。" {file: "http://www.yahoo.co.jp/" line: 11}] .console: [JavaScript Warning: ... Traceback (most recent call last): File "/Users/ongaeshi/app/addon-sdk-1.0b4/bin/cfx", line 29, in <module> cuddlefish.run() File "/Users/ongaeshi/app/addon-sdk-1.0b4/python-lib/cuddlefish/__init__.py", line 695, in run addons=options.addons) File "/Users/ongaeshi/app/addon-sdk-1.0b4/python-lib/cuddlefish/runner.py", line 276, in run_app time.sleep(0.05) KeyboardInterrupt (addon-sdk-1.0b4)$
とか、
(addon-sdk-1.0b5)$ cfx run -p /Users/ongaeshi/Library/Application Support/Firefox/Profiles/1k45yor8.develop Using binary at '/Applications/Firefox.app/Contents/MacOS/firefox-bin'. Using profile at '/Users/ongaeshi/Library/Application Support/Firefox/Profiles/1k45yor8.develop'. TypeError: loader.console is undefined (resource://jid0-seifaydckhvdzhihlua8wnsduu4-api-utils-lib/cuddlefish.js:188) stack: allowImport([object Object],"resource://jid0-seifaydckhvdzhihlua8wnsduu4-api-utils-lib/plain-text-console.js","chrome",null,[object Object])@resource://jid0-seifaydckhvdzhihlua8wnsduu4-api-utils-lib/cuddlefish.js:188 syncRequire("chrome")@resource://jid0-seifaydckhvdzhihlua8wnsduu4-api-utils-lib/securable-module.js:301 asyncRequire("chrome")@resource://jid0-seifaydckhvdzhihlua8wnsduu4-api-utils-lib/securable-module.js:317 @:0 FAIL Total time: 1.321938 seconds Program terminated unsuccessfully.
とか。こんなのがいきなり出たらパニックになります、でも慌てないで。
そんな時はプロファイルを作り直すのが吉
なんとなく、自分のしこんだエラーじゃないなあと感じたら、プロファイルが何かの拍子に壊れてしまった可能性が高い。
addon-sdk-1.0b5/local.json を見て、使ってるプロファイルを調べる。私の環境の場合は 1k45yor8.develop がデフォルト。
{ "configs": { "default": [ "-p", "/Users/ongaeshi/Library/Application Support/Firefox/Profiles/1k45yor8.develop/" ], "test": [ "-p", "/Users/ongaeshi/Library/Application Support/Firefox/Profiles/rqz81337.test/" ] } }
1k45yor8.develop を 1k45yor8.develop.old 等に名前変更
(addon-sdk-1.0b5)$ cd ~/Library/Application Support/Firefox/Profiles/ (addon-sdk-1.0b5)$ mv 1k45yor8.develop 1k45yor8.develop.old # プロファイルの名前を変更(要らなければ消してもよい)
再度 cfx runを実行すると、プロファイルが作り直される。
(addon-sdk-1.0b5)$ cfx run
これで、大抵の場合上手くいくはず。