Симулятор Firefox OS не обнаруживает мое устройство на winXP
У меня есть устройство ZTE Open с ОС Firefox.
Я следовал этому руководству, чтобы загружать в него приложения, но Firefox OS Simulator не обнаруживает его в Windows XP.
Если я бегу adb devices
это списки roamer2 device
,
Я попробовал это на Kubuntu (тот же компьютер) и Windows Vista (другой компьютер), и это работает.
Как я могу заставить его работать на Windows XP?
Версии:
- Мобильная ОС: Firefox OS 1.1 (OPEN_FFOS_V1.1.0B01_TME)
- ОС ПК: Windows XP SP3
- Браузер Firefox: 25.0.1
- Firefox OS Simulator: 4.0.1
2 ответа
Я обнаружил, что проблема в том, что Windows XP Home Edition не имеет tasklist.exe
,
И эта ветка с answers.microsoft.com дает решение:
Windows XP Home не содержит утилиту Tasklist.exe, я не могу понять, почему Microsoft исключила эту утилиту из Home Edition, но вы можете скачать ее копию здесь: http://www.computerhope.com/download/winxp.htm Поставь утилиту в свой
Windows\System32
папка.
Если вы не хотите ничего лишнего в своем system32
папка, вот альтернативное решение.
В [FF Profile]\extensions\r2d2b2g@mozilla.org\resources\r2d2b2g\lib\adb.js
заменить _isAdbRunning
функция (строка 235) со следующей:
_isAdbRunning: function() {
let deferred = Promise.defer();
let ps, args;
let platform = Services.appinfo.OS;
if (platform === "WINNT") {
ps = "C:\\windows\\system32\\tasklist.exe";
args = [];
} else {
args = ["aux"];
let psCommand = "ps";
let paths = env.PATH.split(':');
let len = paths.length;
for (let i = 0; i < len; i++) {
let fullyQualified = file.join(paths[i], psCommand);
if (file.exists(fullyQualified)) {
ps = fullyQualified;
break;
}
}
}
if (ps) try {
let buffer = [];
subprocess.call({
command: ps,
arguments: args,
stdout: function(data) {
buffer.push(data);
},
done: function() {
let lines = buffer.join('').split('\n');
let regex = (platform === "WINNT") ? psRegexWin : psRegexNix;
let isAdbRunning = lines.some(function(line) {
return regex.test(line);
});
deferred.resolve(isAdbRunning);
}
});
return deferred.promise;
}catch(err){
if(err.name !== "NS_ERROR_FILE_NOT_FOUND") throw err;
}
debug("Error: a task list executable not found on filesystem");
deferred.resolve(false); // default to restart adb
return deferred.promise;
},