在我编写的 android 代码的 jni 层中,我将一个数组从 jni 层返回到 java 层。我正在使用 DeleteLocalRef() 在传递结果之前释放本地引用。我只是想确保我编写的代码是正确的。请在下面找到代码。感谢任何帮助。
extern "C"
{
JNIEXPORT jbyteArray JNICALL Java_com_jni_btRead(JNIEnv* env, jobject)
{
unsigned char* reply = btRead();
jbyteArray jba;
if(reply)
{
jba = env->NewByteArray(2048);
env->SetByteArrayRegion(jba, 0, 2048, reinterpret_cast<jbyte*>(reply));
}
else
{
jba = env->NewByteArray(0);
}
env->DeleteLocalRef(jba);
return jba;
}
}