CodenameOne IOS 应用因 threadsToDelete 为空而崩溃
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 中。它说 threadsToDelete 在该 if 语句中为空。当我打开一个显示图片的新表单,然后切换回原始表单时,似乎会发生这种情况。我确实开始了一个新线程来将某些细节保存到亚马逊。但它不会每次都崩溃。
我已经在 Github here 中解决了这个问题。它将包含在下一个构建服务器更新中(可能是今天,可能是下周)。
我有一个 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 中。它说 threadsToDelete 在该 if 语句中为空。当我打开一个显示图片的新表单,然后切换回原始表单时,似乎会发生这种情况。我确实开始了一个新线程来将某些细节保存到亚马逊。但它不会每次都崩溃。
我已经在 Github here 中解决了这个问题。它将包含在下一个构建服务器更新中(可能是今天,可能是下周)。