Android真机调试打印不出Log的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android真机调试打印不出Log的解决方案相关的知识,希望对你有一定的参考价值。

参考技术A

解决方法:

1.进入手机拨号界面:输入*20121220#(不知道为什么是这个数字,是不是是之前预言的世界末日前两天,两两一组ABBA的格式方便记忆),接着就进入下面这个界面:

2.选日志输出等级:

3.分别设置Log print enable和对应的log level

解决办法:

1、进入手机拨号界面: # #2846579# # 进入测试菜单界面。

2、Project Menu–后台设置–LOG设置

3、进入Log设置后,可进行打开LOG开关的操作

4、若不行,同级页面可选Dump&Log,然后全部选中

以上操作完成后,如果还是不能打印,可以重启Eclipse或android Studio

iOS真机调试打印并保存控制台输出日志

查看项目的输出日志有下面两种情况:

1、 如果是模拟器或者真机连接xcode的时候就可以直接在控制台打印log,查看输出日志;

2、 如果是真机调试同时不能连接xcode的时候就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些log的,如果要查看这些日志,我们就可以把输出日志保存到沙盒的Documents中,保存成txt文档来查看。代码如下:

#pragma mark - 保存日志文件
- (void)redirectNSLogToDocumentFolder

    //如果已经连接Xcode调试则不输出到文件
    if(isatty(STDOUT_FILENO)) 
        return;
    
    
    UIDevice *device = [UIDevice currentDevice];
    if([[device model] hasSuffix:@"Simulator"]) //在模拟器不保存到文件中
        return;
    
    
    //获取Document目录下的Log文件夹,若没有则新建
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *logDirectory = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Log"];
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL fileExists = [fileManager fileExistsAtPath:logDirectory];
    if (!fileExists) 
        [fileManager createDirectoryAtPath:logDirectory  withIntermediateDirectories:YES attributes:nil error:nil];
    
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //每次启动后都保存一个新的日志文件中
    NSString *dateStr = [formatter stringFromDate:[NSDate date]];
    NSString *logFilePath = [logDirectory stringByAppendingFormat:@"/%@.txt",dateStr];
    
    // freopen 重定向输出输出流,将log输入到文件
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);

在程序中直接调用此方法即可。


剩下的就是查看保存的txt格式的输出日志,可以用iPhone Explorer软件来查看,下载iPhone Explorer,连接手机,如图,即可找到对应app的输出日志。

但是这些txt文件是不能在这里面直接查看的,可以将其用鼠标直接拖到桌面上,即可查看。



以上是关于Android真机调试打印不出Log的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Android调试的Log.d()没有输出

怎么解决这个问题啊,华为 u8860 4.0.3的系统android程序真机调试,eclipse的logcat无法打印错误信息

酷派真机测试无法打印出Log.d解决方法

iOS真机调试打印并保存控制台输出日志

android真机调试logcat文件在哪

华为部分真机调试无法显示log问题解决