我看到以下问题作为崩溃报告。可能存在导致该问题的一系列语句。请查看代码片段并建议是否需要更改第一行上设置的首选项。请告诉我。
``
Codename One revisions: 7dd4e7d08b3442d90959477ee52a5ae8c4361b29
[EDT] 0:0:0,3 - Exception: java.io.IOException -
org.bouncycastle.crypto.InvalidCipherTextException: pad block corrupted
java.io.IOException
at com_codename1_crypto_EncryptedStorage.createInputStream:70
at com_codename1_io_Storage.readObject:263
at com_codename1_io_Preferences.get:84
at com_codename1_io_Preferences.get:252
at com_fluency_fluencymobile_server_ServerImpl.__INIT__:49
at com_fluency_fluencymobile_server_Server.__CLINIT__:14
at com_fluency_fluencymobile_Main.init:51
at com_fluency_fluencymobile_MainStub.run:30
at com_codename1_ui_Display.processSerialCalls:1303
at com_codename1_ui_Display.mainEDTLoop:1097
at com_codename1_ui_RunnableWrapper.run:120
at com_codename1_impl_CodenameOneThread.run:176
at java_lang_Thread.runImpl:153
``
代码:
``
public void init(Object context) {
Preferences.setPreferencesLocation("EncryptedPreferences");
Storage.getInstance().deleteStorageFile(Cookie.STORAGE_NAME);
EncryptedStorage.install("hshdjimnj");
JSONParser.setUseLongs(true);
Display.getInstance().setProperty("AppVersion", "2.1");
NetworkManager.getInstance().updateThreadCount(2);
Util.register("Activity", Activity.class);
Util.register("OfflineCommand", OfflineCommand.class);
Util.register("Appointment", Appointment.class);
theme = UIManager.initNamedTheme("/theme", "Theme");
Dialog.setDefaultBlurBackgroundRadius(10);
``
为什么
EncryptedStorage.install("hshdjimnj");
不是 init()
方法中的第一行?
如果某些代码在加密之前访问首选项,则可能会发生这种情况,我不确定如何,因为
init()
应该是第一件事。
请注意,这只是一个信息性错误,您可以通过此代码看到。如果该代码无法读取文件,则返回 null 并向您报告错误。当使用
set()
调用保存文件时,这将触发正确加密的文件的重写。