Codenameone 在Safari上运行时,在存储/首选项上引发Javascript生成错误

Codenameone 在Safari上运行时,在存储/首选项上引发Javascript生成错误,codenameone,Codenameone,我的Javascript构建应用程序在Android/PC上的任何浏览器上都可以正常运行。但在Safari(iOS、Mac)上,它在尝试从存储读取数据时到达代码时会死掉,这是在遇到麻烦并跟踪了几天之后 这发生在应用程序加载并从存储读取初始设置时,存储在首次运行后。(第一次运行正常,初始设置后,第二次运行挂起,同时达到如图所示的代码) 我尝试了两种方法: Storage.getInstance().readObject("setup"); 及 String setup=Preferences

我的Javascript构建应用程序在Android/PC上的任何浏览器上都可以正常运行。但在Safari(iOS、Mac)上,它在尝试从存储读取数据时到达代码时会死掉,这是在遇到麻烦并跟踪了几天之后

这发生在应用程序加载并从存储读取初始设置时,存储在首次运行后。(第一次运行正常,初始设置后,第二次运行挂起,同时达到如图所示的代码)

我尝试了两种方法:

Storage.getInstance().readObject("setup");

String setup=Preferences.get(“setup”,null)

他们都面临着同样的问题

令人惊讶的是,这些应用已经运行了好几个月没有出现问题,这个问题最近才出现,可能是苹果更新的Safari引擎/存储

我尝试重新发送Javascript构建,但仍然面临同样的问题

下面是使用Netbeans在模拟器中运行时中断的复制堆栈

"EDT"
at userclasses.StateMachine.postLoginForm(StateMachine.java:2412)
at generated.StateMachineBase.postShow(StateMachineBase.java:2774)
at com.codename1.ui.util.UIBuilder.postShowImpl(UIBuilder.java:2602)
at com.codename1.ui.util.UIBuilder.showForm(UIBuilder.java:2520)
at com.codename1.ui.util.UIBuilder.showForm(UIBuilder.java:2565)
at generated.StateMachineBase.startApp(StateMachineBase.java:66)
at generated.StateMachineBase.<init>(StateMachineBase.java:31)
at generated.StateMachineBase.<init>(StateMachineBase.java:118)
at userclasses.StateMachine.<init>(StateMachine.java:170)
at com.mycompany.project.wclient.CMAIN.start(CMAIN.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.codename1.impl.javase.Executor$1$1.run(Executor.java:123)
at com.codename1.ui.Display.processSerialCalls(Display.java:1152)
at com.codename1.ui.Display.mainEDTLoop(Display.java:969)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
“EDT”
位于userclasses.StateMachine.postLoginForm(StateMachine.java:2412)
在generated.StateMachineBase.postShow(StateMachineBase.java:2774)
位于com.codename1.ui.util.UIBuilder.postShowImpl(UIBuilder.java:2602)
在com.codename1.ui.util.UIBuilder.showForm(UIBuilder.java:2520)上
在com.codename1.ui.util.UIBuilder.showForm(UIBuilder.java:2565)
在生成的.StateMachineBase.startApp处(StateMachineBase.java:66)
在生成的.StateMachineBase中。(StateMachineBase.java:31)
在生成的.StateMachineBase中。(StateMachineBase.java:118)
位于userclasses.StateMachine.(StateMachine.java:170)
位于com.mycompany.project.wclient.CMAIN.start(CMAIN.java:31)
位于sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于com.codename1.impl.javase.Executor$1$1.run(Executor.java:123)
位于com.codename1.ui.Display.processSerialCalls(Display.java:1152)
位于com.codename1.ui.Display.mainEDTLoop(Display.java:969)
位于com.codename1.ui.runnablerrapper.run(runnablerrapper.java:120)
位于com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)

请提供建议。

谢谢您的报告。看起来Safari 10破坏了我们使用的存储库(LocalFower)中的一些东西。我已经修复了构建服务器上的问题。它将在周五的下一次构建服务器更新中提供。

您能为这些调用提供调用堆栈吗(从模拟器中,只要在断点上断开并复制堆栈跟踪),通常这比实际调用更重要。您能建议如何?这个问题只发生在Javascript端口、Safari(iOS/Mac)以及它与模拟器(JavaSE)的关系上?对于您的信息,对于那些内置浏览器的社交iOS应用程序(微信、LINE、Facebook),这个问题不会发生。仅使用Safari,iOS上的Chrome也面临同样的问题。我试过,不知道这是你需要的堆栈跟踪。。我在Preferences.get()之后设置了一个断点,但我无法在此处粘贴。。由于stackoverflow显示我的评论太长..编辑您的问题并在此处添加详细信息,然后在此处进行评论,以便我看到更改谢谢您的帮助,根据guard,我通过在第一个首选项之后添加从Netbeans复制的堆栈来编辑我的问题。get()谢谢!我将在周六重新发送构建的。在生成服务器更新后有什么方法可以得到通知?我想尽快发送构建..问题解决了!在清除了所有safari的历史之后,谢谢!