1

env->CallVoidMethod は、使用時に java/lang/Class を返します

env->GetObjectClass(aobject); //aobject was the argument sent by JNI to C++

aobject は、インターフェースを実装する Java オブジェクトです。

jobject obj = env->GetObjectClass(aobject) 

Java オブジェクトを返すはずですが、代わりに java/lang/Class を返しています

4

3 に答える 3

0

'static'を削除してから、.h / .cファイルを再生成していないため、JNIメソッドのシグネチャがJavaのシグネチャと一致しません。引数リストには、静的メソッドにのみ存在する追加のjclassがあります。したがって、非常に奇妙な実行が発生します。

于 2012-05-22T22:30:18.527 に答える
0

私の問題に対する答えは、Shen Liang による「The Java Native Interface - Programmer's Guide and Specification」に記載されています。

「Call< Type >Method ファミリの関数を使用して、インターフェイス メソッドを呼び出すこともできます。インターフェイス タイプからメソッド ID を派生させる必要があります」

于 2012-05-23T17:52:54.107 に答える