JNI 中的 NoSuchMethodError 到 Java 异常

NoSuchMethodError in JNI to Java Exception

我收到这个错误:

java.lang.NoSuchMethodError: 没有非静态方法"Ljava/lang/AssertionError;.(Ljava/lang/String;)V"

jclass clazz = env->FindClass( "java/lang/AssertionError" );

env->ThrowNew( clazz, "Test Assertion" );

注:env 为 JNIEnv*

有什么想法吗?我看到 AssertionError 存在。我只在 Android Lollipop 上看到这个。在 android 4.4.2 上似乎没问题。

尝试

jclass clazz = env->FindClass( "java/lang/AssertionError" );

env->ThrowNew( clazz, "Test Assertion" );

不知道exceptionClass是哪里来的,你这里没有设置。

java.lang.AssertionError doesn't have the constructor 错误信息中提到。所以你不能使用依赖于它的ThrowNew(),

您必须自己构造异常并使用 Throw().