`
abc20899
  • 浏览: 928583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

帮助ADT改进DDMS中的Logcat中文乱码问题

阅读更多
有的时候我们调试Android应用可能涉及中文内容,但是在DDMS的Logcat下显示中文时为乱码,这里大家可以通过自己编译SDK来解决,有关编译Android SDK方法可以参考如何编译Windows平台的Android SDK 下面一起看下哪个代码存在问题吧。
  在Android源码DDMS中我们找到 MultiLineReceiver 这个类,对应GIT开源在development/tools/ddms/libs/ddmuilib/src/com/android/ddmuilib/,最主要的就是有关String实例化时最后一个参数,看到ISO-8859-1了吧,我们将这个换成gb2312就可以很好的显示简体中文了,繁体嘛可以考虑big5这种编码等等了,当然了Android123推荐大家使用UTF-8这种兼容性最好的。

public abstract class MultiLineReceiver implements IShellOutputReceiver {

     public final void addOutput(byte[] data, int offset, int length) {
         if (isCancelled() == false) {
             String s = null;
             try {
                 s = new String(data, offset, length, "ISO-8859-1"); //问题在这里,ISO-8859-1就是Latin-1我们俗称西欧语言
             } catch (UnsupportedEncodingException e) {
                 // normal encoding didn't work, try the default one
                 s = new String(data, offset,length);
             }

             // ok we've got a string
             if (s != null) {
                 // if we had an unfinished line we add it.
                 if (mUnfinishedLine != null) {
                     s = mUnfinishedLine + s;
                     mUnfinishedLine = null;
                 }


                 mArray.clear();
                 int start = 0;
                 do {
                     int index = s.indexOf("\r\n", start);

                     // if \r\n was not found, this is an unfinished line
                     // and we store it to be processed for the next packet
                     if (index == -1) {
                         mUnfinishedLine = s.substring(start);
                         break;
                     }


                     String line = s.substring(start, index);
                     if (mTrimLines) {
                         line = line.trim();
                     }
                     mArray.add(line);

                     // move start to after the \r\n we found
                     start = index + 2;
                 } while (true);

                 if (mArray.size() > 0) {

                     String[] lines = mArray.toArray(new String[mArray.size()]);

                     // send it for final processing
                     processNewLines(lines);
                 }
             }
         }
     }
}
分享到:
评论

相关推荐

    ADT中Layout Editor中文显示乱码问题

    通过以上步骤,大部分情况下都可以解决ADT Layout Editor中文显示乱码的问题。如果问题依然存在,可能需要进一步检查Eclipse的工作空间配置、JVM参数,甚至考虑更换其他IDE,如Android Studio,它在处理多语言字符集...

    ADT-0.9.6支持中文LOGCAT

    呵呵,收小小的一分,因为别的资源下载也要积分。大家下载了直接和以前ADT一样更新,在eclipse的help->install new software直接安装本地,找到这个文件夹更新,重启eclipse,LOGCAT就完美支持中文啦。

    EclipseADT-24.2.0-支持jdk8.zip

    2.网上的adt24.0.2版本对logcat日志有问题 3.里面已经包含com.android.ide.eclipse.adt_24.2.0.20160729.jar修复支持了jdk8编译环境 4.里面已经包含了build-tools\25.0.3的dx.jar修改后文件 参考链接: ...

    解决Android7.0以上手机eclipse不输出logcat问题

    6. **配置Eclipse ADT**:在Eclipse中,打开`Window > Preferences > Android > DDMS`,检查`Device`视图是否已打开,并确保你的设备被正确识别。如果需要,可以尝试重启Eclipse和ADB服务。 7. **使用命令行调试**...

    Eclipse ADT 24.2.0 版本

    在24.2.0这个版本中,Eclipse ADT针对开发者们遇到的一些问题进行了优化,特别是针对无法正常显示LogCat日志的故障进行了修复。LogCat是Android系统中的一个重要工具,它记录了应用程序运行时的各种调试信息,对于...

    ADT7461A中文手册

    《ADT7461A中文手册》是一个重要的参考资料,主要针对ADT7461A这款集成温度传感器的使用和开发。这份手册包含了全面的技术规格、操作指南以及详细的电路应用示例,对于电子工程师尤其是那些在温度监测系统设计领域的...

    eclipse在Android7.0的手机上无logcat输出

    6. **清空Logcat缓存**:在Eclipse的DDMS视图中,尝试清空Logcat缓存,然后重新启动应用以获取新的日志输出。 7. **使用my_ddmlib**:如果提供的压缩包中包含名为"my_ddmlib"的文件,这可能是一个自定义的DDMLib库...

    android-logcat

    7. **使用DDMS**:Eclipse中的DDMS透视图也可以查看logcat,点击`Window` -> `Open Perspective` -> `Other` -> `DDMS`。 此外,Android Device Monitor(现在已被Android Studio的Logcat替代)是一个图形界面工具...

    Android ADT(ADT-23.0.6.zip)离线包

    5. **DDMS (Dalvik Debug Monitor Service)**: DDMS是Android的调试工具,可以监控应用的内存使用、CPU使用率、线程状态,并提供了模拟GPS位置、接收SMS等功能,帮助开发者调试应用。 6. **ProGuard**: ADT还包括了...

    sdk adt bundle for windows中文包

    4. **DDMS (Dalvik Debug Monitor Service)**: 一个强大的调试工具,提供进程管理、内存分析、性能监视等功能,帮助开发者定位和解决问题。 5. **Android Hierarchy Viewer**: 用于查看Android应用用户界面层次结构...

    ADT-24.2.0.rar

    在这个版本“ADT-24.2.0.rar”中,我们聚焦于这个特定的更新,它声称是最后一个版本,并且特别提到解决了logcat不输出的问题。 1. **ADT(Android Developer Tools)**:这是Google提供的一个插件,专为Eclipse设计...

    ADT-24.2.0.zip

    5. **调试工具**:包括LogCat在内的调试工具套件,可以帮助开发者追踪代码执行情况,定位并解决问题。 6. **版本控制集成**:与Git、SVN等版本控制系统无缝集成,便于团队协作开发。 7. **构建与打包**:自动化...

    ADT下载地址(含各版本),最新ADT-23.0.2

    1. **性能优化**:随着版本的不断迭代,ADT团队通常会针对之前版本中的性能问题进行优化,提高编辑和构建速度。 2. **错误修复**:每个新版本都会修复旧版本中存在的各种bug,提升整体稳定性。 3. **新特性支持**:...

    Eclipse无Logcat输出解决.zip

    在Android开发过程中,Eclipse是曾经广泛使用的集成开发环境(IDE),而Logcat是...一旦找到问题所在,按照“解决方法.txt”中的指导进行操作,通常就能恢复Logcat的正常工作,从而帮助你顺利进行Android应用的调试。

    ADT7420中文数据手册.rar_ADT7420_ADT7420中文手册_ADT7420数据表

    ADT7420是一款16位数字温度传感器,由Analog Devices公司生产,它提供了高精度和宽测量范围的温度检测解决方案。这款传感器在工业、汽车和消费电子领域广泛应用,因其卓越的性能和易用性而受到青睐。本文将详细讲解...

    ADT-24.2.0以及ddmlib.jar 包含ADT文件

    如果你遇到上述问题,可以尝试升级Eclipse中的ADT至这个版本。升级过程通常包括卸载现有的ADT插件,然后导入ADT-24.2.0-20160729.zip文件中的内容。导入完成后,确保在Eclipse的插件管理器中正确安装并激活新版本的...

    ADT(Android开发工具包)eclipse插件中文语言包

    ADT_LanguagePack_eclipse_zh 是Google发布的ADT(Android开发工具包)的eclipse插件中文语言包 最新更新请关注:http://code.google.com/p/adt-zh/ 翻译工作感谢 邹庆云 (Cherry Chou) 的大力支持; 由于ADT插件很...

    ADT24.2.0最后版本.zip

    标题中的"ADT24.2.0最后版本.zip"指的是Android Developer Tools (ADT)的版本24.2.0,这是一个集成开发环境(IDE)插件,专为Eclipse设计,用于帮助开发者构建、调试和发布Android应用程序。这个版本被视为ADT的最终...

    ADT-20.0.3

    4. **文档查阅**:充分利用官方文档,学习如何利用ADT的各种功能,解决开发过程中遇到的问题。 总的来说,ADT 20.0.3是Android开发者的重要工具,提供了全面的开发、调试和测试功能。通过熟练掌握这个版本的ADT,...

Global site tag (gtag.js) - Google Analytics