【发布时间】:2014-06-23 16:02:09
【问题描述】:
我目前正在使用 angularJS 和 cordova 3.2 开发一个手机应用程序。
我的一些玩家报告说,应用程序没有在他们的设备上启动。下面列出了这些设备。
- 擎天柱 p880(安卓版本 4.0.3)
- Lifetab von Medion(Adroid 版本 4.0.3)
- 索尼爱立信 Xperia mini pro (Android 4.0.4)
所以它似乎与那个 Android 版本 4.0.3/4 有某种联系。
未启动意味着,cordova 应用程序正在启动,但 angularjs 在启动之前崩溃,因为附加了 ng-cloak 类的所有元素(在我的情况下是为完整的根窗口设置的)仍然隐藏.所以用户什么都看不到。
问题是,我没有任何设备来测试它,但一位玩家确实向我发送了他设备的日志,说
Uncaught SyntaxError: Unexpected strict mode reserved word
根据我可以确定的行号和文件名,问题是由下面的代码引起的(它来自第 3878 行的 angular.js v1.2.16 文件)。该问题似乎适用于声明throw err;
(#3878)
function createInternalInjector(cache, factory) {
function getService(serviceName) {
if (cache.hasOwnProperty(serviceName)) {
if (cache[serviceName] === INSTANTIATING) {
throw $injectorMinErr('cdep', 'Circular dependency found: {0}', path.join(' <- '));
}
return cache[serviceName];
} else {
try {
path.unshift(serviceName);
cache[serviceName] = INSTANTIATING;
return cache[serviceName] = factory(serviceName);
} catch (err) {
if (cache[serviceName] === INSTANTIATING) {
delete cache[serviceName];
}
throw err; /*** THE ERROR APPLIES HERE! **/
} finally {
path.shift();
}
}
}
我真的不能说,这里发生了什么。这些应用程序在其他设备和其他 android 版本上运行良好。
你们中有人知道我可以如何为玩家解决这个问题吗?
【问题讨论】:
-
没有想法?它对我来说真的很困难,我想得到一个解决方案!
-
你们的服务名称是什么?当我尝试使用(未来的)保留字命名函数时,我得到了这个错误。你可能也有同样的情况。不要不要仅仅因为这个而删除
'use strict'指令。
标签: android html angularjs cordova strict