Android JNI ThrowNew没有找到构造函数

时间:2013-01-16 09:32:00

标签: java android android-ndk java-native-interface

我正在尝试从JNI抛出异常,但是Activity崩溃时出现以下logcat错误:

WARNING: exception class 'Lthis/is/package/A$B;' missing constructor (msg='' kind=0
java.lang.RuntimeException: re-throw on exception class missing constructor

我的代码与此类似:

在JAVA中:

package this.is.package;
public class A {
    public class B extends Exception {
        public B () { super (); }
        public B ( String s ) { super ( s ); }
        public B ( Throwable t ) { super ( t ); }
        public B ( String s, Throwable t ) { super ( s, t ); }
    }
}

IN JNI:

(*env)->ThrowNew ( env, (*env)->FindClass ( "this/is/package/A$B" ), "" );

我该如何解决?

1 个答案:

答案 0 :(得分:0)

当在另一个类中定义java类时,它的构造函数将自动附加有关的args,例如,父类实例。

要解决此问题,只需将"static"标识符/关键字添加到您的B类:

e.g。 public static class B extends Exception