尝试在Android手机上运行项目时,Appcelerator会出错:
[INFO]:在6.57967s中编译的合金
[INFO]:Alloy编译成功完成
[INFO]:JavaScript文件需要加密
[INFO]:处理JavaScript文件
[错误]:无法解析/Users/bas/Documents/Appcelerator_Studio_Workspace/Whatever-App-master/Resources/android/alloy/controllers/picture-list.js.js
[错误]:赋值表达式(21:4)中的左侧无效
愚蠢的是Appcelerator自己创建了文件:
[INFO]:[picture-list.js.xml]查看处理...
[INFO]:style:“picture-list.js.tss”
[INFO]:view:“picture-list.js.xml”
[INFO]:创建:“Resources / android / alloy / controllers / picture-list.js.js”
[INFO]:创建:“Resources / android / alloy / styles / picture-list.js.js”
...为什么要制作一个文件而不是以后再抱怨呢?
应用程序现在没有运行,在编译后停止。
画面list.js:
function __processArg(obj, key) {
var arg = null;
if (obj) {
arg = obj[key] || null;
delete obj[key];
}
return arg;
}
function Controller() {
require("/alloy/controllers/BaseController").apply(this, Array.prototype.slice.call(arguments));
this.__controllerPath = "complaints/picture-list";
this.args = arguments[0] || {};
if (arguments[0]) {
__processArg(arguments[0], "__parentSymbol");
__processArg(arguments[0], "$model");
__processArg(arguments[0], "__itemTemplate");
}
var $ = this;
var exports = {};
$.__views.pictures = Ti.UI.createTableViewSection({ // line 21
id: "pictures"
});
$.__views.pictures && $.addTopLevelView($.__views.pictures);
exports.destroy = function() {};
_.extend($, $.__views);
_.extend($, exports);
}
var Alloy = require("/alloy"), Backbone = Alloy.Backbone, _ = Alloy._;
module.exports = Controller;
画面list.js.js:
function __processArg(obj, key) {
var arg = null;
if (obj) {
arg = obj[key] || null;
delete obj[key];
}
return arg;
}
function Controller() {
require("/alloy/controllers/BaseController").apply(this, Array.prototype.slice.call(arguments));
this.__controllerPath = "picture-list.js";
this.args = arguments[0] || {};
if (arguments[0]) {
__processArg(arguments[0], "__parentSymbol");
__processArg(arguments[0], "$model");
__processArg(arguments[0], "__itemTemplate");
}
var $ = this;
var exports = {};
$.__views.picture - list.js = Ti.UI.createView({ // line 21
id: "picture-list.js"
});
$.__views.picture - list.js && $.addTopLevelView($.__views.picture - list.js);
exports.destroy = function() {};
_.extend($, $.__views);
_.extend($, exports);
}
var Alloy = require("/alloy"), Backbone = Alloy.Backbone, _ = Alloy._;
module.exports = Controller;
答案 0 :(得分:0)
因为编译器会删除JavaScript文件,所以它也会验证它。
所以你看到的是picture-list.js文件中的JavaScript错误,我假设第21行。
您可以找到有关错误的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side
编辑:根据您的代码。
你可以看到这个,(它是无效的JS)
$.__views.picture - list.js = Ti.UI.createView({ // line 21
id: "picture-list.js"
});
这可能是由原始代码中的-
引起的,或者与控制器的名称有关。名称和ID不支持-
。我建议使用下划线更改它,因此picture_list.js
。
变量名称中不支持javascript中的破折号(-
),这就是为什么会出错!
答案 1 :(得分:0)
在编写有关数百万开发人员使用的平台的荒谬事情之前,最好通过提供必要的信息来了解真相。
Titanium必须首先创建JS文件,然后处理任何逻辑错误。
您在这里提供的信息仅为50%&在您从应用项目中共享此文件 picture-list.js.js
的代码之前,而不是在参考资料中,您的答案无法解决。如果不能共享整个代码,那么分享前40-50行代码应该没问题。
其次,我可以在您的文件XML,JS,TSS中看到重复的js.js,它们不应该存在。
最后,您可以转到此文件 /Users/bas/Documents/Appcelerator_Studio_Workspace/Whatever-App-master/Resources/android/alloy/controllers/picture-list.js.js
&分享线号。这里我想包含某种由于你的一些微妙错误而无效的作业。