首页 文章

JNI到Java异常中的NoSuchMethodError

提问于
浏览
1

我收到此错误:

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 回答

  • 2

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

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

  • 2

    尝试

    jclass clazz = env->FindClass( "java/lang/AssertionError" );
    
    env->ThrowNew( clazz, "Test Assertion" );
    

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

相关问题