如何解决如何使用JNI将Java Vector转换为std :: vector
我的JNI头文件实现如下所示
apptester.java:
public native boolean bool1(Vector<Byte>filepath);
之所以将其声明为字节是因为根据javadocs,它说8位int可以声明为字节。
byte:byte数据类型是8位带符号的二进制补码整数。最小值为-128,最大值为127(含)。字节数据类型对于在大型数组中节省内存可能非常有用,因为内存节省实际上很重要。它们也可以用来代替int,因为它们的限制有助于澄清您的代码;变量范围有限的事实可以作为一种文档形式。
这是我的c ++代码:
JNIEXPORT jboolean JNICALL Java_app_Tester_bool1
(JNIEnv*,jobject,jbyteArrayfilepath) {
//codes...
myProxy->bool1(filepath,callStatus,retcode);
//codes...
if (retcode == 0) {
status = true;
return status;
} else {
return status;
}
}
现在,在我的c ++编辑器中,它显示类似以下错误-> no suitable constructor exists to convert from "jobject" to "std::vector<uint8_t,std::allocator<uint8_t>>
最初,c ++代码期望使用std::vector<uint8_t>filepath;
。
我不太确定如何将jobject转换为向量类型。有谁可以帮助我解决这个错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。