在我在Android上使用我的应用程序的特定情况下,我在首选项(CN1Preferences)中丢失了值。
当我第一次启动应用程序时,我在“首选项”中保存了一些值。如果我关闭我的应用程序(从后台任务)然后我睡觉我的平板电脑,当我重新启动应用程序时,首选项中保存的值将丢失。这是我重新启动后获得的日志:
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)中不会出现此问题。我只在运行Android 6.0.1的三星Galaxy Tab A上注意到它
提前致谢。
答案 0 :(得分:1)
这可能与线程访问应该合法的首选项有关。我已经在今天的更新中同步了两个可能具有破坏性的方法,希望这可以解决这个问题。
答案 1 :(得分:0)
就我而言,我复制了一个工作项目以启动一个新项目。我离开了文件
keystore.jks
(要上传到Google Play的密钥库)为空,因此在编译时遇到此异常。
我刚刚在应用程序级别android/buildTypes
的{{1}}部分中删除了 signingConfig 行,并且它起作用了。
可能是您遇到了此类问题,一个被遗忘的空文件不应该为空。