我在新的Codename One应用程序上遇到了几个构建错误:
构建抱怨FileNotfoundException类和String split()方法。知道为什么吗?
xxx\Page.java:11: error: cannot find symbol
import java.io.FileNotFoundException;
symbol: class FileNotFoundException
location: package java.io
和
xxx\Page.java:97: error: cannot find symbol
final String[] parts = number_label.split("-");
symbol: method split(String)
location: variable number_label of type String
顺便说一下,在CodenameOne中使用java 1.5是否有限制?我找不到用java 7编译的地方。
亲切的问候,
答案 0 :(得分:1)
string.split()
仍然是一个有问题的API调用。
Codename One支持Java 5的一个子集,您不应该尝试更改它,因为服务器转换代码依赖于目标Java 5的字节码行为,并且只支持API的一个非常特定的子集。
原因很简单,因为Codename One有多个VM实现(iOS,Dalvik / ART,XMLVM / ParparVM,黑莓等),它真的很难测试新东西(例如更新的字节码)而且真的很难以一种完全跨平台的方式添加新的API。您可以使用StringUtils.split()
来实现此功能以及StringTokenizer
。
限制API还允许我们使可执行文件保持高效和小(相对)。与功能更全面的VM相比,我们的产量至少要小5倍。这对移动应用来说是一个大问题......
我们正在努力整合服务器端的各种VM,这将使我们能够在未来更轻松地添加核心VM API以及Java 8支持等功能。
您可以在此答案中了解更多信息: How does Codename One work?