我是使用JNI的新手,因此我尝试从C中的本机库中获取double
和unsigned int
,并将值返回到我的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 :(得分:4)
您并没有完全困扰自己提供完整的课程定义,或回答您在评论中提出的问题,但似乎
playerA->positionMs
是数据成员,不是成员方法,类似于其他方法调用。所以你不能把它们称为方法。但是你可以直接将它们作为值返回。