簡體   English   中英

如何在jni接口中將值放入字節數組中

[英]how to put values in byte array in jni interface

在這里,我將一個空字節緩沖區“數據”從我的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM