2016-12-09 6 views
1

jqlインターフェイスを使用してJavaオブジェクトからjava floatファイルを取得したいと思います。androidのjniエラーndk12bとndk13bの間

Javaコード:C++で

public class JavaObject immplements Serializable { 
    public float floatfiled1 = 0f; 
    public float floatfield2 = 0f; 
} 

JNI CODE:

jclass jclazz = jenv->FindClass("JavaObject"); 
jfieldID field_id = jenv->GetFieldID(jclazz, "floatfiled1", "F"); 
float test_v = jenv->GetFloatField(javaobject, field_id); 
LOGD("[JNI] test_v=%f", test_v); 

test_v常に多くのアンドロイドの携帯電話に0.0を得ます。 XIAOMI3のようないくつかの携帯電話でさえ、非常に大きな数字を取得します。

ndk12bを使用しているときに問題がありません。 Javaオブジェクトからfloatフィールドを取得すると、ndk13bの問題は何ですか?

+0

完全修飾クラス名を 'FindClass()'に渡す必要があります。 – timrau

答えて

0

この問題を解決しました。 私のjniインターフェイスAndroid.mkにあります。 使用しないfalgsを削除すると、ndk12bとndk13bではすべてがOKです。 enter image description here