首页 > 解决方案 > bouncycastle 库和模态对话框的垫块损坏,无法在最小化的应用程序上显示

问题描述

我对 CN1 有以下问题

  1. 我不确定这是因为 CN1 还是 Bouncy Castle 本身。我最近开始在设备上看到此错误。我无法在模拟器中重现此问题。

    [EDT] 0:0:0,4 - 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 c_server_ServerImpl.__INIT__:49
        at _server_Server.__CLINIT__:14
        at _Main.init:51
        at _MainStub.run:30
        at com_codename1_ui_Display.processSerialCalls:1298
        at com_codename1_ui_Display.mainEDTLoop:1093
    
  2. 我最近也开始在 iOS 上看到这条消息。

    模态对话框无法在最小化的应用程序上显示。

除了使用无限容器外,我不显示任何对话框。

标签: codenameone

解决方案


我猜模态对话框是由于 EDT 主线程捕获的异常。它通常会显示一个错误对话框。

您尝试在加密存储中读取的文件已损坏。可能在加密发生之前写入。在这种情况下,在实施加密之前,似乎某些内容已保存到首选项中。我建议setPreferencesLocation在应用加密后立即调用设置不同的文件名以避免这种情况。


推荐阅读