【发布时间】:2011-09-16 02:16:07
【问题描述】:
问题描述
我正在为 Android 编写应用程序并使用本机代码,并在 Android-Emulator 上对其进行测试。为了查看 JNI 代码中发生了什么,我在 Android /data/LogTest/ 文件夹中创建了一个文件,并将我的日志信息写入其中。
FILE * pFile;
pFile = fopen ("/data/LogTest/Log.txt"", "w");
// ....
// Write some logs to file ...
// ....
当我第一次运行 Android 应用程序时,一切正常,我可以在 Log.txt 文件中看到日志。但是当我关闭 Android 应用程序并再次运行它时,什么也没有发生。像应用程序不能第二次将日志写入文件。
自我想法
我认为这个问题的主要原因是,当我第一次创建文件时,创建者应用程序名称是 ex。 456 在我尝试将更多信息写入文件应用程序名称为 ex 之后。 856 等应用程序 856 无法写入已创建应用程序 456 的文件。
问题
- 如何启动同名应用程序,以便 Android 让我第二次写入文件。
- 或者问题的主要原因不是应用程序每次都获得随机名称。
【问题讨论】:
-
顺便说一句,你也可以通过 liblog 向 logcat 发送日志消息。
-
您必须将 log.h 文件和 liblog 包含到您的 make 文件中,然后您才能在代码中使用 __android_log_write()。这是一篇详细介绍的博文。 blog.blackwhale.at/2009/08/android-ndk-logging
-
@ba__friend 感谢您的支持,您的回答对我非常有用,我从您的评论中学到了新东西,但这实际上不是我想要的,我需要写到 Log.txt跨度>
-
检查
fopen是否失败:if (pFile == NULL) perror("fopen");
标签: java android c android-emulator java-native-interface