HarmonyOS 鸿蒙Next 用ORM数据库进行插入数据操作时闪退,日志如下,怎么解决这个问题啊
HarmonyOS 鸿蒙Next 用ORM数据库进行插入数据操作时闪退,日志如下,怎么解决这个问题啊
D/AGP: NativeDispatchTouchEvent call GetTouchEventType, eventtype:1
NativeDispatchKeyEvent call GetTouchPhase, touchphase:1
NativeDispatchKeyEvent call GetTouchEventPointersInfo, pointerCount:1
E/EGL_emulation: eglQuerySurface 313d EGL_BAD_ATTRIBUTE
D/AGP: NativeDispatchTouchEvent call GetTouchEventType, eventtype:2
NativeDispatchKeyEvent call GetTouchPhase, touchphase:3
NativeDispatchKeyEvent call GetTouchEventPointersInfo, pointerCount:1
E/InputEventReceiver: Exception dispatching input event.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke interface method 'boolean ohos.data.orm.OrmContext.insert(ohos.data.orm.OrmObject)' on a null object reference
at com.example.sqlitedemo.dao.NodeDaoImpl.insert(NodeDaoImpl.java:38)
at com.example.sqlitedemo.slice.NodeInfoAbilitySlice.lambda$onStart$0$NodeInfoAbilitySlice(NodeInfoAbilitySlice.java:40)
at com.example.sqlitedemo.slice.-$$Lambda$NodeInfoAbilitySlice$0NoeK-dStfVj1qln97KH_UQxjyc.onClick(Unknown Source:2)
at ohos.agp.window.wmc.AGPEngineAdapter.nativeDispatchTouchEvent(Native Method)
at ohos.agp.window.wmc.AGPEngineAdapter.processTouchEvent(AGPEngineAdapter.java:196)
at ohos.agp.window.wmc.AGPWindow.dispatchTouchEvent(AGPWindow.java:749)
at ohos.aafwk.ability.AbilityWindow.dispatchTouchEvent(AbilityWindow.java:413)
at ohos.aafwk.ability.Ability.dispatchTouchEvent(Ability.java:1096)
at ohos.abilityshell.AbilityShellActivityDelegate.convertTouchEventThenDispatch(AbilityShellActivityDelegate.java:627)
at ohos.abilityshell.AbilityShellActivity.dispatchTouchEvent(AbilityShellActivity.java:162)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:685)
at android.view.View.dispatchPointerEvent(View.java:13957)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6420)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6215)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5623)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5781)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5631)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5838)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5623)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5631)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8698)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8618)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8571)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8956)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:239)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:363)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
D/AndroidRuntime: Shutting down VM
I/QarthLog: [PatchStore] createDisableExceptionQarthFile
[PatchStore] create disable file for com.example.sqlitedemo uid is 10207
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sqlitedemo, PID: 25574
java.lang.NullPointerException: Attempt to invoke interface method 'boolean ohos.data.orm.OrmContext.insert(ohos.data.orm.OrmObject)' on a null object reference
at com.example.sqlitedemo.dao.NodeDaoImpl.insert(NodeDaoImpl.java:38)
at com.example.sqlitedemo.slice.NodeInfoAbilitySlice.lambda$onStart$0$NodeInfoAbilitySlice(NodeInfoAbilitySlice.java:40)
at com.example.sqlitedemo.slice.-$$Lambda$NodeInfoAbilitySlice$0NoeK-dStfVj1qln97KH_UQxjyc.onClick(Unknown Source:2)
at ohos.agp.window.wmc.AGPEngineAdapter.nativeDispatchTouchEvent(Native Method)
at ohos.agp.window.wmc.AGPEngineAdapter.processTouchEvent(AGPEngineAdapter.java:196)
at ohos.agp.window.wmc.AGPWindow.dispatchTouchEvent(AGPWindow.java:749)
at ohos.aafwk.ability.AbilityWindow.dispatchTouchEvent(AbilityWindow.java:413)
at ohos.aafwk.ability.Ability.dispatchTouchEvent(Ability.java:1096)
at ohos.abilityshell.AbilityShellActivityDelegate.convertTouchEventThenDispatch(AbilityShellActivityDelegate.java:627)
at ohos.abilityshell.AbilityShellActivity.dispatchTouchEvent(AbilityShellActivity.java:162)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:685)
at android.view.View.dispatchPointerEvent(View.java:13957)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6420)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6215)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5623)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5781)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5631)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5838)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5623)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5631)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5604)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8698)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8618)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8571)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8956)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:239)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:363)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
I/Process: Sending signal. PID: 25574 SIG: 9
Connected to process 25591 on device 'huawei-ana_an00-127.0.0.1:18888'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/AGP: Finish to register native methods for AGP
D/AGP: VsyncSchedulerAndroid:jni is registered.
D/AGP: Typeface:native typeface ptr 0x7002694b40
Typeface:native typeface ptr 0x7002694b40
Typeface:native typeface ptr 0x700270d1c0
Typeface:native typeface ptr 0x7002694b40
Typeface:native typeface ptr 0x7002694de0
Typeface:native typeface ptr 0x7002694c60
Initialize system fonts.
I/DecorView[]: pkgName:com.example.sqlitedemo old windowMode:0 new windoMode:1, isFixedSize:false
I/OverScrollerOptimization: start init SmartSlideOverScroller and get the overscroller config
get the overscroller config
W/WindowDecorActionBar: should not do the transition or the transition anim is null or it is running or the mContainer view is null or mContainer view hasn't been drawn to screen
I/Icon_Cache: add:2130771968#com.example.sqlitedemo
D/HwGalleryCacheManagerImpl: mIsEffect:false
D/ActivityThread: add activity client record, r= ActivityRecord{b0b6e3 token=android.os.BinderProxy@ab1aeee {com.example.sqlitedemo/com.example.sqlitedemo.MainAbilityShellActivity}} token= android.os.BinderProxy@ab1aeee
D/AGP: Initialize system language.
BF:Client
D/AGP: BF:AGPWindow back to top(flag=1)
E/AGP: BF:AGPWindow OnTop fail
I/HwPartMagicWindowFactory: add android.common.HwPartMagicWindowFactoryImpl to memory.
D/MouseWheelSynthesizer: mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100
D/ViewRootImpl: ViewRootImpl mIsInProductivePCDisplay: false
I/HwPartPowerOfficeFactory: add HwPartPowerOfficeFactoryImpl to memory.
D/InputEventReceiver: dispatchInputInterval 1000000
E/RtgSchedIpcFile: RtgSchedIpcFile failed to open /proc/25591/rtg
I/RmeSchedManager: init Rme, version is: v1.0
E/RtgSchedIpcFile: setCommandByIoctl not opened
D/OpenGLRenderer: disableOutlineDraw is true
D/HiTouch_PressGestureDetector: onAttached, package=com.example.sqlitedemo, windowType=1, mIsHiTouchRestricted=false
D/: HostConnection::get() New Host Connection established 0x7006e4d220, tid 11805
D/: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object ANDROID_EMU_gles_max_version_3_0
W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
D/RenderService: RCS is disable
D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation: eglCreateContext: 0x7006e4dea0: maj 3 min 0 rcv 3
E/AGP: VsyncSchedulerAndroid:can not find method postRenderThreadInfo.
D/EGL_emulation: eglMakeCurrent: 0x7006e4dea0: ver 3 0 (tinfo 0x7006e25800)
D/: HostConnection::get() New Host Connection established 0x7006e4e080, tid 11872
D/: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object ANDROID_EMU_gles_max_version_3_0
E/RtgIoctl: RtgIoctl invalid path
D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation: eglCreateContext: 0x7006e4e120: maj 3 min 0 rcv 3
W/Gralloc3: mapper 3.x is not supported
D/EGL_emulation: eglMakeCurrent: 0x7006e4e120: ver 3 0 (tinfo 0x7006fec080)
D/HAL: loaded HAL id=gralloc path=/vendor/lib64/hw/gralloc.ranchu.so hmi=0x6fa16dc010 handle=0xa13989441c84e93f
D/: createUnique: call
D/: HostConnection::get() New Host Connection established 0x7006e4e300, tid 11805
HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object ANDROID_EMU_gles_max_version_3_0
D/AGP: Surface created: width:1080, height:1917, ptr: 0x6fa0f0d180
D/AGP: Get: copying 32 bytes to caller's buffer
D/EGL_emulation: eglMakeCurrent: 0x7006e4e120: ver 3 0 (tinfo 0x7006fec080)
D/AGP: BF:Client register new ability
D/AGP: BF:Client register new contentView
BF:Client Register
E/EGL_emulation: eglQuerySurface 313d EGL_BAD_ATTRIBUTE
D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 1 0
D/AGP: Get: copying 677 bytes to caller's buffer
D/EGL_emulation: eglMakeCurrent: 0x7006e4dea0: ver 3 0 (tinfo 0x7006e25800)
D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 1 0
D/AGP: Get: copying 1538 bytes to caller's buffer
I/OpenGLRenderer: Davey! duration=1079ms; Flags=1, IntendedVsync=1012277275787, Vsync=1012277275787, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=1012277910980, AnimationStart=1012277974640, PerformTraversalsStart=1012277979480, DrawStart=1012465516280, SyncQueued=1012467919180, SyncStart=1012472223520, IssueDrawCommandsStart=1012472419840, SwapBuffers=1012953453760, FrameCompleted=1013361146640, DequeueBufferDuration=14806000, QueueBufferDuration=23063000,
I/HwViewRootImpl: removeInvalidNode jank list is null
D/DecorView: showOrHideHighlightView: hasFocus=true; winMode=1; isMrgNull=true
W/InputMethodManager: startInputReason = 1
D/AGP: can not find focus in [UILinearLayout ID(259) Id(-1)]
W/HwRemoteInputMethodManager: isCasting false because IHwDistributedWindowManager is invalid.
W/InputMethodManager: startInputReason = 5
D/AGP: can not find focus in [UILinearLayout ID(259) Id(-1)]
I/OpenGLRenderer: Davey! duration=1134ms; Flags=1, IntendedVsync=1012328286066, Vsync=1013378286066, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=1013388453820, AnimationStart=1013388503220, PerformTraversalsStart=1013389181660, DrawStart=1013407359320, SyncQueued=1013408141400, SyncStart=1013408627140, IssueDrawCommandsStart=1013408699120, SwapBuffers=1013409147820, FrameCompleted=1013463697380, DequeueBufferDuration=10214000, QueueBufferDuration=17376000,
I/AwareBitmapCacher: init lrucache size: 2097152 pid=25591
更多关于HarmonyOS 鸿蒙Next 用ORM数据库进行插入数据操作时闪退,日志如下,怎么解决这个问题啊的实战教程也可以访问 https://www.itying.com/category-93-b0.html
楼主你好,可以打印一下getOrmContext打开的数据库是否为空,参考下案例:
https://gitee.com/harmonyos/harmonyos_app_samples/tree/master/data/ORM
更多关于HarmonyOS 鸿蒙Next 用ORM数据库进行插入数据操作时闪退,日志如下,怎么解决这个问题啊的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我通过Debug调试,发现数据库在录入数据时,通过TextField获取的数据可以录入进数据库中,但是主键自增id字段并没有从-1变化到0,而是从-1变化到了null。可不可能是这个原因啊,
为了便于定位问题,可以提供下代码。把id设置从0开始试试。
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
欢迎开发小伙伴们进来帮帮楼主
针对HarmonyOS鸿蒙Next在使用ORM数据库进行插入数据操作时闪退的问题,以下是一些可能的解决方案:
-
检查数据库连接:
- 确保在插入数据前,数据库连接已经正确建立且未关闭。
-
验证ORM框架配置:
- 检查ORM框架的配置文件或代码,确保数据库表结构、字段类型等信息与数据库实际结构一致。
-
分析日志:
- 仔细查看闪退时的日志信息,特别是与数据库操作相关的部分,找出可能的异常或错误提示。
-
处理异常:
- 在插入数据的代码中添加异常处理逻辑,捕获并处理可能抛出的异常,避免程序因未处理的异常而闪退。
-
更新ORM框架和数据库驱动:
- 确保使用的ORM框架和数据库驱动为最新版本,以修复可能存在的bug。
-
资源限制:
- 检查系统资源使用情况,如内存、存储等,确保在进行数据库操作时系统资源充足。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。请注意,由于无法直接查看代码和日志详情,以上建议仅供参考,具体解决方案可能需要根据实际情况进行调整。