Я хочу получить java float, зарегистрированный из java-объекта с интерфейсом jni.jni ошибка в android между android ndk12b и ndk13b
JAVA CODE:
public class JavaObject immplements Serializable {
public float floatfiled1 = 0f;
public float floatfield2 = 0f;
}
JNI код в C++:
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. Итак, в чем проблема с ndk13b, когда вы получаете поле float из java-объекта?
Вам необходимо передать полностью квалифицированное имя класса в 'FindClass()'. – timrau