JNI到Java异常中的NoSuchMethodError

时间:2015-05-15 00:24:55

标签: java android exception java-native-interface nosuchmethoderror

我收到此错误:

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上很好。

2 个答案:

答案 0 :(得分:2)

尝试

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

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

我不知道exceptionClass来自哪里,但你没有在这里设置它。

答案 1 :(得分:2)

错误消息中提到的

java.lang.AssertionError doesn't have the constructor。所以你不能使用依赖于它的ThrowNew(),

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