0

JNI から例外をスローしようとしていますが、次の 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 ); }
    }
}

JNI で:

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

どうすれば修正できますか?

4

1 に答える 1

0

Java クラスが別のクラス内で定義されている場合、そのコンストラクターには暗黙の引数 (親クラスのインスタンスなど) が自動的に追加されます。

この問題を解決するには、"static"識別子/キーワードをクラス B に追加します。

例えば public static class B extends Exception

于 2013-05-25T07:39:14.993 に答える