我正在寻找一种捕获在Android(JAVA)端引发的异常并在本机端处理该异常的方法。

我需要做的是检测异常的类型并相应地处理它。

知道如何完成吗?

最佳答案

我想到了...

if(jEnv->ExceptionCheck() == JNI_TRUE ) {
  __android_log_write(ANDROID_LOG_DEBUG, "JNI", "HAS EXCEPTION");
  jthrowable exceptionObj = jEnv->ExceptionOccurred();

  jclass exceptionClass = cocos2d::JniHelper::getClassID("com/companyName/example/exceptions/MyException", jEnv);
  if (jEnv->IsInstanceOf(exceptionObj, exceptionClass)) {
    __android_log_write(ANDROID_LOG_DEBUG, "JNI", "Cought MyException!");

    throw MyException();
  }
}

08-26 05:32