diff --git a/frameworks/ets/ani/application/src/ets_application.cpp b/frameworks/ets/ani/application/src/ets_application.cpp index e395fac644c559d1ce5298015c53a513f8c0e94d..4d68d1ff724e4e7be6c3ffea8cead7d8033930a8 100644 --- a/frameworks/ets/ani/application/src/ets_application.cpp +++ b/frameworks/ets/ani/application/src/ets_application.cpp @@ -249,16 +249,22 @@ ani_object EtsApplication::GetApplicationContext(ani_env *env) TAG_LOGD(AAFwkTag::APPKIT, "GetApplicationContext Call"); if (env == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "null env"); - return {}; + return nullptr; } auto etsReference = AbilityRuntime::ApplicationContextManager::GetApplicationContextManager().GetEtsGlobalObject(); if (etsReference == nullptr || etsReference->aniRef == nullptr) { - TAG_LOGE(AAFwkTag::APPKIT, "null applicationContextObject"); - AbilityRuntime::EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INNER); - ani_ref result = nullptr; - env->GetNull(&result); - return static_cast(result); + auto applicationContext = ApplicationContext::GetInstance(); + ani_object applicationContextObject = + EtsApplicationContextUtils::CreateEtsApplicationContext(env, applicationContext); + if (applicationContextObject == nullptr) { + TAG_LOGE(AAFwkTag::APPKIT, "null applicationContextObject"); + AbilityRuntime::EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INNER); + ani_ref result = nullptr; + env->GetNull(&result); + return static_cast(result); + } + return applicationContextObject; } return reinterpret_cast(etsReference->aniRef); }