diff --git a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp index 105024a53788a53d7e70d117035cad3823146833..4bb1fac1cbdee0dfce04e039384b2b36a501c53c 100644 --- a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp +++ b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window_manager.cpp @@ -309,8 +309,17 @@ bool ParseConfigOption(ani_env* env, ani_object configuration, WindowOption &opt } env->Object_GetPropertyByName_Ref(configuration, "ctx", &result); - ani_object aniContextPtr = reinterpret_cast(result); - contextPtr = AniWindowUtils::GetAbilityContext(env, aniContextPtr); + ani_boolean isCtxUndefined = false; + env->Reference_IsUndefined(result, &isCtxUndefined); + if (!isCtxUndefined) { + ani_object aniContextPtr = reinterpret_cast(result); + contextPtr = AniWindowUtils::GetAbilityContext(env, aniContextPtr); + auto context = static_cast*>(contextPtr); + if (context == nullptr) { + TLOGE(WmsLogTag::DEFAULT, "[ANI] context is nullptr"); + return AniWindowUtils::AniThrowError(env, WMError::WM_ERROR_NULLPTR, "Stage mode without context"); + } + } ani_boolean dialogDecorEnable; env->Object_GetPropertyByName_Boolean(configuration, "decorEnabled", &dialogDecorEnable);