前几日看了名下一个BUG,说是在某OS上字体功能错误。吾就奇怪了,专门为此编译了JDK,怎么还有此问题?问测试人员JDK版本号、换代码,都不对。更疑惑了。

  • 加了点LOG,没有输出。心里就奇怪:难道这个字体加载有不同的路径?于是研究了加载代码,只有一条路。回头研究调用的代码,确实是同一个初始化。
  • 难道库链接错了?此OS上不同的CPU平台也都错误,说明链接库也是对的。使用ldd检查,确实是对的。

  于是想啊想,终于明白了:除了加载我司的字体库,又加载了系统的字体库,而其中很多函数是同名的。可能是先加载系统库,所以优先调用了系统库的那个函数。功能自然不对。

 

  怎么办?函数改名,重新编译即可。凡是修改的函数,吾都会加一个独特的前缀,确保不同。希望此文对大家有所帮助。