在使用Android上的应用程序的特定情况下,我在首选项(CN1Preferences)中松散了值。在Android上重新启动我的应用程序时发生EOFException
当我第一次启动我的应用程序时,我在首选项中保存了一些值。如果我关闭了我的应用程序(从后台任务),然后我休息片刻,当我重新启动应用程序时,保存在首选项中的值将丢失。这是重新开张后,我得到的日志:
CliniScore: [EDT] 0:0:0,4 - Exception: java.io.EOFException - null
05-04 16:32:40.667 10618-10978/? W/System.err: java.io.EOFException
05-04 16:32:40.667 10618-10978/? W/System.err: at java.io.DataInputStream.readBoolean(DataInputStream.java:69)
05-04 16:32:40.667 10618-10618/? D/SecWifiDisplayUtil: Metadata value : SecSettings2
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.io.Util.readObject(Util.java:541)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.io.Util.readObject(Util.java:638)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.io.Storage.readObject(Storage.java:261)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.io.Preferences.get(Preferences.java:83)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.io.Preferences.get(Preferences.java:298)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.impl.CodenameOneImplementation.initEDT(CodenameOneImplementation.java:235)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.ui.Display.mainEDTLoop(Display.java:952)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
05-04 16:32:40.667 10618-10978/? W/System.err: at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
05-04 16:32:40.667 10618-10978/? W/System.err: at java.lang.Thread.run(Thread.java:818)
如果我强迫关闭我的应用程序只(不睡我的平板电脑),有一个与我的喜好值没有问题。
在iOS/Simulator/Emulator(Android)中不会出现此问题。我只注意到它在三星Galaxy Tab A运行Android 6.0.1
在此先感谢。
它看起来像你放入一个对象到偏好实现externalizable不正确的可能吗? –
不,我在偏好中只有原始类型。我有一个实现可外部化的对象,但它被放置在另一个文件中并且看起来正确 –
您是否做过类似加密存储或其他任何事情? 您是否写入cn1preferences文件?你有没有改变偏好文件的路径? –