问题:PNG不会渲染。
我最近重新启动了Titanium Appcelerator应用程序的工作,这个应用程序在18个月左右没有被触及。
(我在Mac OS X Yosemite 10.10.15上开发)
跳过几个环节,即安装最新的Appcelerator Studio,最新的Titanium SDK 5.1.0v20150929231927,iOS和Android SDK,更新XCode版本,将项目导入新的工作区(因为以前的工作区不会认识到iOS SDK' s。
我现在可以构建我的应用程序并在iOS模拟器中运行它...但是没有任何PNG渲染(或JPG),并显示"缺少图像图标"代替。 (即使没有更改应用程序代码 - 因此环境或appcelerator问题)。
(请参阅下面的示例代码,我尝试渲染一些ImageView和Button控件)
我唯一可以渲染图像的方法是使用GIF。但是,这不是解决方案,因为我们使用的图像由于质量而不适合转换为GIF。
我试过以下所有这些都不允许我渲染PNG:
将图像移动到不同的文件夹(图片位于/ resources / images /) 试图使用不同的PNG 创建了一个全新的测试项目,它有2个测试窗口,甚至还有2个PNG用于菜单标签按钮,即使它们不能渲染。 尝试渲染其他图像。只有GIF会显示,即使是GIF,也会显示与不呈现的PNG相同的文件夹。 确保使用正确的大小写引用路径和文件。 这一切都意味着我的客户无法对其应用程序进行重要更新。
任何与我的Mac有类似问题或解决方案的人都准备好被抛到窗外了!
可以在此
中找到hello world test app的一些示例代码附件是来自Hello World测试应用程序的示例代码,我正在尝试呈现的PNG和示例代码输出的屏幕截图(显示2 x gif' s显示但没有其他)。
// SAMPLE TEST CODE:
Titanium.UI.setBackgroundColor("#000");
var tabGroup = Titanium.UI.createTabGroup(),
win1 = Titanium.UI.createWindow({
title: "Tab 1",
backgroundColor: "#000"
}),
tab1 = Titanium.UI.createTab({
icon: "KS_nav_views.png",
title: "Tab 1",
window: win1
}),
label1 = Titanium.UI.createLabel({
color: "#999",
text: "I am Window 1",
font: {
fontSize: 20,
fontFamily: "Helvetica Neue"
},
textAlign: "center",
width: "auto"
}),
image1 = Titanium.UI.createImageView({
top: 50,
left: 50,
image: "KS_nav_ui.png"
}),
image2 = Titanium.UI.createImageView({
top: 100,
left: 50,
image: "/images/iconjpg.jpg"
}),
image3 = Titanium.UI.createImageView({
top: 150,
left: 50,
image: "/iphone/iconjpg.jpg"
}),
image4 = Titanium.UI.createImageView({
top: 200,
left: 50,
image: "/iconjpg.jpg"
}),
image5 = Titanium.UI.createImageView({
top: 250,
left: 50,
image: "/images/btn-meetings.gif"
}),
image6 = Titanium.UI.createImageView({
top: 300,
left: 50,
image: "/images/btn-meetings.png"
}),
testButton = Ti.UI.createButton({
backgroundImage: "/images/btn-meetings.png",
height: 76,
width: 150,
top: 350,
left: 50
}),
testButton2 = Ti.UI.createButton({
backgroundImage: "/images/icongif.gif",
height: 76,
width: 150,
top: 400,
left: 50
});
win1.add(image1), win1.add(image2), win1.add(image3), win1.add(image4), win1.add(image5), win1.add(image6), win1.add(testButton), win1.add(testButton2), win1.add(label1);
var win2 = Titanium.UI.createWindow({
title: "Tab 2",
backgroundColor: "#fff"
}),
tab2 = Titanium.UI.createTab({
icon: "KS_nav_ui.png",
title: "Tab 2",
window: win2
}),
label2 = Titanium.UI.createLabel({
color: "#999",
text: "I am Window 2",
font: {
fontSize: 20,
fontFamily: "Helvetica Neue"
},
textAlign: "center",
width: "auto"
});
win2.add(label2), tabGroup.addTab(tab1), tabGroup.addTab(tab2), tabGroup.open(),
function() {
var e = require("ti.cloud"),
i = "production" === Ti.App.deployType.toLowerCase() ? "production" : "development",
t = Ti.App.Properties.getString("acs-username-" + i),
a = Ti.App.Properties.getString("acs-password-" + i);
i && t && a && e.Users.login({
login: t,
password: a
}, function(e) {
"development" === i && (Ti.API.info("ACS Login Results for environment `" + i + "`:"), Ti.API.info(e)), e && e.success && e.users && e.users.length ? Ti.App.fireEvent("login.success", e.users[0], i) : Ti.App.fireEvent("login.failed", e, i)
})
}();

答案 0 :(得分:1)
我刚使用5.1.1.GA和your image ..
运行以下内容var win = Ti.UI.createWindow({
backgroundColor: 'white'
});
win.add(Ti.UI.createImageView({
image: '/images/Jldsg.png'
}));
win.open();
这对我来说很好:
除了你的代码中有很多linting errors之外,我不知道为什么它不适合你。
JSLint无法完成。
第68行第17栏
预期';'而是 锯 ','。 win1.add(image1),win1.add(image2),win1.add(image3), win1.add(image4),win1.add(image5),win1.add(image6), win1.add(testButton),win1.add(testButton2),win1.add(label1);
第68行第17栏
意外','。 win1.add(image1),win1.add(image2), win1.add(image3),win1.add(image4),win1.add(image5), win1.add(image6),win1.add(testButton),win1.add(testButton2), win1.add(label1的);
答案 1 :(得分:0)
我今天遇到了类似的问题,特别是我用于标签图标的PNG,这让我想到了这个问题。我离开电脑一段时间,然后节点崩溃了。
Appcelerator Studio仍在运行,但我知道构建过程涉及Node脚本,因此我退出Appcelerator Studio(和iOS模拟器)并重新启动它 - 问题就消失了。
像大卫一样,当正确的代码无效时,我几乎无法忍受我的挫败感。至少在我的情况下,我能够确定罪魁祸首是周围环境中的腐败。答案 2 :(得分:0)
我遇到了同样的问题,PNG没有渲染。
从我的<use-app-thinning>true</use-app-thinning>
文件中删除tiapp.xml
标记有效。他们马上回来了。
我正在使用TiSDK v5.4,OSX Yosemite和xCode 7.2。