From b3497f42e4b318ce6b22eaf4a2ab76b581825338 Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Sat, 9 Feb 2019 18:55:48 +0800 Subject: [PATCH] Add failsafe for `love.window.getSafeArea` in Android. In case it uses older Java files, the function can safely be called without causing Java crash. --HG-- branch : android-safearea --- src/common/android.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/android.cpp b/src/common/android.cpp index 19e8486f2..b53ce9735 100644 --- a/src/common/android.cpp +++ b/src/common/android.cpp @@ -98,7 +98,10 @@ bool getSafeArea(int &top, int &left, int &bottom, int &right) jmethodID methodID = env->GetMethodID(clazz, "initializeSafeArea", "()Z"); bool hasSafeArea = false; - if ((hasSafeArea = env->CallBooleanMethod(activity, methodID))) + if (methodID == nullptr) + // NoSuchMethodException is thrown in case methodID is null + env->ExceptionClear(); + else if ((hasSafeArea = env->CallBooleanMethod(activity, methodID))) { top = env->GetIntField(activity, env->GetFieldID(clazz, "safeAreaTop", "I")); left = env->GetIntField(activity, env->GetFieldID(clazz, "safeAreaLeft", "I"));