[core] get full exception info (#955)

This commit is contained in:
vvb2060 2021-08-20 14:50:56 +08:00 committed by GitHub
parent bde68a44cb
commit 6dfaf67a07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -156,9 +156,10 @@ concept ScopeOrObject = ScopeOrRaw<jobject, T>;
inline ScopedLocalRef<jstring> ClearException(JNIEnv *env) {
if (auto exception = env->ExceptionOccurred()) {
env->ExceptionClear();
static jmethodID toString = env->GetMethodID(env->FindClass("java/lang/Object"), "toString",
"()Ljava/lang/String;");
auto str = (jstring) env->CallObjectMethod(exception, toString);
static jclass log = (jclass) env->NewGlobalRef(env->FindClass("android/util/Log"));
static jmethodID toString = env->GetStaticMethodID(log, "getStackTraceString",
"(Ljava/lang/Throwable;)Ljava/lang/String;");
auto str = (jstring) env->CallStaticObjectMethod(log, toString, exception);
env->DeleteLocalRef(exception);
return {env, str};
}