NS_ERROR_FAILURE:Mozilla sdk with firefox mobile(nightlies ok)

时间:2014-05-12 15:28:26

标签: android firefox firefox-addon

我正在尝试为Android移动版Firefox开发Firefox扩展程序。我的代码包含以下代码段:

var target = Cc["@mozilla.org/file/directory_service;1"]
             .getService(Ci.nsIProperties)
             .get("DfltDwnld", Ci.nsIFile);

这适用于Windows上的当前Firefox,Android上的Nightlies,但不适用于Android上的当前Firefox版本。后者给出以下错误:

I/stdout  (17182): ************************************************************
I/stdout  (17182): * Call to xpconnect wrapped JSObject produced this error:  *
I/stdout  (17182): [Exception... "Component returned failure code: 0x80004005 (N
S_ERROR_FAILURE) [nsIProperties.get]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"
  location: "JS frame :: resource://gre/modules/XPIProvider.jsm -> jar:file:///m
nt/sdcard/jetpack-profile/extensions/jid1-deaye7pPKgPbLg@jetpack.xpi!/bootstrap.
js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-deaye
7ppkgpblg-at-jetpack/my-addon/lib/main.js :: extractFile :: line 109"  data: no]

I/stdout  (17182): ************************************************************

同样,当我尝试不同的是创建文件时,我得到了类似的结果:

代码:

Cu.import("resource://gre/modules/FileUtils.jsm");
var target = FileUtils.getFile("DfltDwnld", entryName);

结果:

E/GeckoConsole( 2157): [JavaScript Error: "[Exception... "Component returned fai
lure code: 0x80004005 (NS_ERROR_FAILURE) [nsIProperties.get]"  nsresult: "0x8000
4005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/FileUtil
s.jsm :: FileUtils_getDir :: line 63"  data: no]" {file: "resource://gre/modules
/FileUtils.jsm" line: 63}]

知道发生了什么,我能做什么?就好像脚本没有写入下载目录的权限。

1 个答案:

答案 0 :(得分:2)

DfltDwnld被排除在Fennec's directory provider之外。

仍然可以使用以下行获取默认目录

var dDD = Cc["@mozilla.org/download-manager;1"].getService(Ci.nsIDownloadManager).defaultDownloadsDirectory;