Я новичок в использовании 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();
}
Пожалуйста, ребята, я буду признателен за любую помощь на всех …
заранее спасибо
Вы точно не потрудились предоставить полное определение класса или ответить на вопросы, которые вам задавали в комментариях, но кажется, что
playerA->positionMs
является элементом данных, а не методом-членом, и аналогично для вызова другого метода. Поэтому вы не можете называть их методами. Но вы можете вернуть их непосредственно как значения.
Других решений пока нет …