九月 2011

iOS系统swprintf格式化带中文字符参数串的EILSEQ问题

之前在Android NDK下纠结过wchar的问题,发现在官方文档里写着2.3以上系统支持部分wchar相关函数,如wcslen等,不支持swprintf,mbstowcs等,很是遗憾,只能自己找了相关函数的源码作了替代实现。现在居然发现在iOS上用swprintf效果也是不尽人意。

省略若干google baidu以及排查调试的过程,直接讲结果,就是在用swprintf的时候任何参数串内容带有中文字符(应该是所有非ansi那些),就会导致返回错误-1,查看errno错误号是EILSEQ,原因就是wchar串里有无法解析的编码字符,这个问题的解决方法是:

继续阅读…

Android真机执行ndk-gdb后出现”found running pid:0 could not extract pid of application…”的解决方法

先说出这问题时的周遭环境:

Android SDK Tools r12
Android SDK Platform-tools r6
Android NDK r6
HTC G10 DesireHD(root)
Eclipse 3.7 Indigo
ADT 12.0.0
Windows XP SP3

问题描述:按着Sequoyah Native Debug的教程走,到执行ndk-gdb起服务的时候,提示”found running pid:0 could not extract pid of application…”说找不到程序的PID(顺带一提,之前还有一次是提示could not extract package’s data directory…,经查发现原因应该是设备没有root),执行adb shell ps发现要调试程序的进程就在那里,PID也看到正常,为什么ndk-gdb说获取不到PID呢?

继续阅读…

NDK r6编译一直提示WARNING: Rebuilding STLport libraries from sources! 的不确定解决方法

自从升级到NDK r6以后,一执行编译就会提示这些东西:

Android NDK: WARNING: Rebuilding STLport libraries from sources!
Android NDK: You might want to use $NDK/build/tools/build-
stlport.sh
Android NDK: in order to build prebuilt versions to speed up your
builds!

说用到的STL port可以用它说的sh进行prebuilt来提高编译速度,虽然没发现有什么太大的影响,但每次提示都很烦人,尤其是ndk-gdb执行的时候居然也会有这些提示,于是决定想办法解决一下!

继续阅读…

Eclipse 3.7 Indigo安装ADT插件时的报错解决

今个发现个Eclipse的插件sequoyah,说可以使Eclipse支持Android的原生调试(Native Debug),但发现现在用的Eclipse 3.5+CDT 6.0不被支持,于是打算升级一下开发环境。

下了目前最新的3.7 Indigo(Classic版)以后发现ADT插件竟然安装报错,顺着依赖关系一看,最后是由于这个没有:”org.eclipse.wst.sse.core 0.0.0″,查了相关资料发现可能是ADT依赖了一些老版本Eclipse的lib,最后发现解决方法如下:

将Helios的Update Site – http://download.eclipse.org/releases/helios加入到更新站列表里,然后重新安装ADT,便会从Helios的站点上下载所依赖的那些库,然后安装就ok了,希望后面使用别再出什么问题…