android版本中不存在src根文件夹下的图像文件(代号为ONE)
这与此类似,但我的问题是,图像在Codename ONE模拟器中(图像可以正确加载和显示),但当我在手机上进行android构建并尝试它时,我会得到一个android版本中不存在src根文件夹下的图像文件(代号为ONE),android,image,file-io,build,codenameone,Android,Image,File Io,Build,Codenameone,这与此类似,但我的问题是,图像在Codename ONE模拟器中(图像可以正确加载和显示),但当我在手机上进行android构建并尝试它时,我会得到一个java.io.FileNotFoundException。根据Shai Almog对上述问题的评论,它应该是有效的 这里怎么了?可能是文件名必须全部小写还是全部大写 (我在这里省略了源代码,因为这似乎是打包的问题,而不是代码本身的问题。) 更新:我尝试将所有文件名更改为小写,但没有效果。最后我发现您必须将文件作为资源打开(感谢@ChrisStr
java.io.FileNotFoundException
。根据Shai Almog对上述问题的评论,它应该是有效的
这里怎么了?可能是文件名必须全部小写还是全部大写
(我在这里省略了源代码,因为这似乎是打包的问题,而不是代码本身的问题。)
更新:我尝试将所有文件名更改为小写,但没有效果。最后我发现您必须将文件作为资源打开(感谢@ChrisStratton指出了正确的方向,而评论显然是关于android SDK开发的) 这项工作:
private static Image loadImage(String path) throws IOException {
InputStream in=null;
try {
// works in simulator but not on device:
// in = FileSystemStorage.getInstance().openInputStream(path);
// works on both simulator and device:
in = Display.getInstance().getResourceAsStream(null, path);
return Image.createImage(in);
} finally {
if (in!=null) {
in.close();
}
}
}
您应该使用EncodedImage.create(“/fileName”)创建图像,或者更好地将它们添加到res文件中,您可以使用多图像格式: 使用输入流的方法的效率略低于我们内部可以做的
src目录中的文件隐式地放在Android的Codename One中的assets目录中,因此不需要assets目录。@ChrisStratton:这是否也适用于Codename One或只是“正常”的Android开发?(代号为ONE-)文档中没有关于资产文件夹的内容。。。