cocos版本是2.x,在导入freetype2时遇到了一些问题,在此记录备忘。
导入到ios时基本没遇到什么麻烦,按照正常步骤把库导入即可。
主要是导入到安卓遇到了一些阻力。
首先导入freetyepe2.a这个库到安卓需要写成JNI的形式并修改mk文件这样的方式。
之后顺利编译通过,但字体却无法显示。
一步步排查发现是assets目录下的ttf字体文件无法读取导致创建字体失败。查看CCFileUtilsAndroid中getFileData这个函数源码,发现安卓平台下的assets资源目录与ios不同,它其实是一个压缩文件的格式,不能直接open,而是通过ZipFile这个类去解析读取的。
于是尝试换一种方式,将assets中的ttf文件用getFileData读取出来,拷贝到writablePath下,再读取这个拷贝。
再次编译后,这次就测试正常了。