ваш код генерирует ошибку на моем эмуляторе.Тем не менее, вы говорите
Когда я запускаю приложение Android в первый раз, все идет хорошо, я вижу журналы в файле Log.txt
Возможно, вы могли бы отправить нам большеВаш код, чтобы мы могли воспроизвести ошибку.
Это моя попытка воспроизвести ваш вопрос
#include<stdio.h>
#include<jni.h>
#include<android/log.h>//allow android logging
#include<errno.h>//for errors
#include<string.h>
#define LOG_TAG "DEO MSG"//all my logs are labeled with this
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
void Java_com_deo_MyActivity_writeLogFileUsingC(JNIEnv * env, jobject thisObject)
{ char filename[]="/data/LogTest/Log.txt";
LOGE("native method started");//is used exactly like the usual printf()
FILE * pFile;
LOGE("trying to open file for writing");
pFile= fopen(filename, "w");
if(pFile==NULL)
{
LOGE("Failed to open the file %s in mode 'w'.(DETAILS)%s ",filename,strerror(errno));
}
else
{
LOGE("trying to write to file");
fprintf(pFile,"logExample "); //example of a log.
fclose(pFile);//safely close our file
LOGE("file writing done");
}
}
Ошибка, сгенерированная в logcat:
ERROR/DEO MSG(816): Failed to open the file /data/LogTest/Log.txt in mode 'w'.(DETAILS)No such file or directory
Я думаю, что моя проблема с вашим кодом можетбыть разрешения.Опишите это подробнее для нас.
PS:
- Я лично предпочитаю использовать logcat для отладки по сравнению с файлами журналов