Как вернуть double и unsigned int из нативной библиотеки c в java, используя JNI

Я новичок в использовании JNI, и поэтому я пытаюсь получить double и unsigned int из нативной библиотеки в C и вернуть значения на мою сторону Java, но я продолжаю получать следующие ошибки от Android Studio

Error:(111, 37) error: called object type 'double' is not a function or function pointer
Error:(117, 43) error: called object type 'unsigned int' is not a function or function pointer
Error:(220, 19) error: functions that differ only in their return type cannot be overloaded

Вот мой код:

double SuperpoweredExample::getPosition() {

double pos = playerA->positionMs();

return pos;
}

unsigned int SuperpoweredExample::getDuration() {
unsigned int dur = playerA->durationMs();
return dur;
}

в то время как это структура Extern C

JNIEXPORT jdouble Java_com_superpowered_crossexample_MainActivity_getPosition(JNIEnv *javaEnvironment, jobject self) {

return example->getPosition();
}
JNIEXPORT jint Java_com_superpowered_crossexample_MainActivity_getDuration(JNIEnv *javaEnvironment, jobject self) {
return example->getDuration();
}

Пожалуйста, ребята, я буду признателен за любую помощь на всех …
заранее спасибо

0

Решение

Вы точно не потрудились предоставить полное определение класса или ответить на вопросы, которые вам задавали в комментариях, но кажется, что

playerA->positionMs

является элементом данных, а не методом-членом, и аналогично для вызова другого метода. Поэтому вы не можете называть их методами. Но вы можете вернуть их непосредственно как значения.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]