我的Javascript构建应用程序在Android / PC上的任何浏览器上运行良好。但是当来到Safari(iOS,Mac)时,它会在尝试从存储中读取数据时到达代码时死机,在遇到麻烦和跟踪几天之后。
在应用程序加载时会发生这种情况,并从首次运行后存储的存储中读取初始设置。 (首次运行正常,初始设置完成后,第二次运行挂起,同时到达代码,如图所示)
我尝试过使用这两种方法:
Storage.getInstance().readObject("setup");
和
String setup = Preferences.get("setup", null)
;
两者都面临同样的问题。
令人惊讶的是,这个正在发生的应用程序已经运行了好几个月而没有任何问题,这个问题最近才发生,可能是由Apple更新的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)
请建议。
答案 0 :(得分:2)
感谢您报告此事。看起来Safari 10破坏了我们使用的存储库中的一些东西(LocalForage)。我已修复构建服务器上的问题。它将在周五的下一个构建服务器更新中提供。