Java 需要帮助理解与IRT相关的Android JNI logcat吗
使用AndroidJNI,我创建了文件并使用文件描述符写入数据 例如:-Java 需要帮助理解与IRT相关的Android JNI logcat吗,java,android,android-ndk,java-native-interface,Java,Android,Android Ndk,Java Native Interface,使用AndroidJNI,我创建了文件并使用文件描述符写入数据 例如:- dest = memalign( BLKSIZE, sz); if (dest == NULL) { LOGE("Unable to allocate memory"); return -1; } memcpy(dest, bufferIn, sz); int rc = write(fd, dest, sz); LOGI("write %d bytes.", rc); free(dest); if(r
dest = memalign( BLKSIZE, sz);
if (dest == NULL) {
LOGE("Unable to allocate memory");
return -1;
}
memcpy(dest, bufferIn, sz);
int rc = write(fd, dest, sz);
LOGI("write %d bytes.", rc);
free(dest);
if(rc == -1) {
LOGI("Error in writing : %d %s\n", errno, strerror(errno));
}
写入成功,我可以看到文件中的数据。但对于每一次写入,我都会登录到adb logcat
01-06 12:46:36.831 16292-16806/com.test.example I/io: write 1024 bytes.
01-06 12:46:36.831 16292-16806/com.test.example W/art: Attempt to remove
local handle scope entry from IRT, ignoring.
浏览安卓源代码后,在 我正在尝试删除本地引用
(*env)->DeleteLocalRef(env, jbIn);
我们不需要自己删除本地引用,一旦JNI函数返回Java,引用将得到GC
本地引用将在从本机方法返回时被JNI丢弃,但此过程与Java垃圾收集无关。通常,我们不需要担心本地引用