gpt4 book ai didi

java - 如何在jni接口(interface)中将值放入字节数组

转载 作者:行者123 更新时间:2023-11-29 22:36:19 25 4
gpt4 key购买 nike

这里我将一个空字节缓冲区“数据”从我的 java 类传递到这个 cpp 文件

JNIEXPORT jstring JNICALL
Java_systems_kestrel_aerovision_datapackets_PacketBuilder_stringFromJNI(
JNIEnv *env, jobject,
jdouble lat, jdouble lng, jdouble altitude, jobject data) {

jbyte *bbuf_in;

bbuf_in = (jbyte *) env->GetDirectBufferAddress(data);
jclass bbclass = env->FindClass( "java/nio/ByteBuffer" );
jmethodID putMethod = env->GetMethodID(bbclass, "put","(IB)Ljava/nio/ByteBuffer");
// unsigned char *buffer = stream_buffer(0);

for(int i=0; i < 5; i++ ) {
env->CallByteMethod( data, putMethod, i, (jbyte)0x7C );
}

它给我这个错误

 JNI DETECTED ERROR IN APPLICATION: the return type of CallByteMethodV does not match java.nio.ByteBuffer java.nio.ByteBuffer.put(byte)    in call to CallByteMethodV

现在我无法将值放入此数据并返回到我的 java 类...请帮忙!!

最佳答案

put 方法返回您写入的ByteBuffer。由于 ByteBuffer 是一种 Object,您应该使用 CallObjectMethod 来调用 put

关于java - 如何在jni接口(interface)中将值放入字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59484160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com