diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp index dd0e45636ee75..ac7700786ea01 100644 --- a/core/jni/android_view_ThreadedRenderer.cpp +++ b/core/jni/android_view_ThreadedRenderer.cpp @@ -322,7 +322,11 @@ private: void NotifyHandler::handleMessage(const Message& message) { JNIEnv* env = getenv(mVm); - jobject target = env->NewLocalRef(mObserver->getObserverReference()); + ObserverProxy* observer = mObserver.get(); + LOG_ALWAYS_FATAL_IF(observer == nullptr, "received message with no observer configured"); + LOG_ALWAYS_FATAL_IF(mBuffer == nullptr, "received message with no data to report"); + + jobject target = env->NewLocalRef(observer->getObserverReference()); if (target != nullptr) { jlongArray javaBuffer = get_metrics_buffer(env, target);