我的CN1应用程序仅在iOS上崩溃(不在Android上)。 使用本机源和xcode,我找到了错误位置:
当显示包含Picker-component的表单时,会出现错误。
在xcode中,我发现我的代码中的这一行导致错误:
picker.setType(Display.PICKER_TYPE_STRINGS);
private boolean setPicker() {
picker.remove();
picker.setSelectedString(null);
picker.setType(Display.PICKER_TYPE_STRINGS);
String[] arr = RatingObject.getListAsStringArray();
if (arr.length > 0) {
gui_ro_Picker.setStrings(arr);
.....
Thread 5: EXC_BAD_ACCESS (code=1, address=0x0)
出现错误的代码:
#ifdef NEW_CODENAME_ONE_VM
JAVA_BOOLEAN com_codename1_impl_ios_IOSImplementation_instanceofObjArrayI___java_lang_Object_R_boolean(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT n1)
{
// second part of the expression check that this isn't a primitive array
return n1->__codenameOneParentClsReference->isArray && cn1_array_start_offset + 100 < n1->__codenameOneParentClsReference->classId;
}
xcode明确标出return
行并带有错误
你对此有什么建议吗?
将picker.setType(Display.PICKER_TYPE_STRINGS);
移动到构造函数中解决了问题。
答案 0 :(得分:1)
对我来说,将picker.setType(Display.PICKER_TYPE_STRINGS)
移动到构造函数中解决了这个问题。
感谢您的建议!