CodenameOne IOS 应用因 threadsT​​oDelete 为空而崩溃

CodenameOne IOS app crashing due to null threadsToDelete

我有一个 codenameOne 应用程序,它在 Android 上运行良好,但偶尔会在 iOS 上崩溃。

从 xcode 看来它失败了:

JAVA_VOID java_lang_Thread_releaseThreadNativeResources___long(CODENAME_ONE_THREAD_STATE, JAVA_LONG nativeThreadId) {
for(int i = 0 ; i < NUMBER_OF_SUPPORTED_THREADS ; i++) {
    if(threadsToDelete[i] != 0 && threadsToDelete[i]->threadId == nativeThreadId) {
        free(threadsToDelete[i]->blocks);
        free(threadsToDelete[i]->threadObjectStack);
        free(threadsToDelete[i]->callStackClass);
        free(threadsToDelete[i]->callStackLine);
        free(threadsToDelete[i]->callStackMethod);
        free(threadsToDelete[i]->pendingHeapAllocations);
        free(threadsToDelete[i]);

        threadsToDelete[i] = 0;
        break;
    }
}

}

在 nativeMethods.m 中。它说 threadsT​​oDelete 在该 if 语句中为空。当我打开一个显示图片的新表单,然后切换回原始表单时,似乎会发生这种情况。我确实开始了一个新线程来将某些细节保存到亚马逊。但它不会每次都崩溃。

我已经在 Github here 中解决了这个问题。它将包含在下一个构建服务器更新中(可能是今天,可能是下周)。