我已经在 android 上编译了 freetype 2.4.2,任何时候我尝试使用 FT_Set_Char_Size() 它都会在 FT_Request_Size() 函数中的 ftobjs.c 文件中崩溃这一行
error = clazz->request_size( face->size, req ); //line 2832
我的代码在 Windows、Linux、Mac、iPhone 和 iPad 上运行良好。但这是交易。在我使用 /Za“禁用语言扩展”编译 freetype 之前,我遇到了完全相同的问题,在 Windows (vc++) 上的同一位置发生了同样的崩溃。
所以我很确定这是在 Android 上编译 freetype 的方式导致了崩溃。我已经查找了如何在 android 上禁用语言扩展但无济于事。
这是我的免费类型的 Android.mk 文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/builds \
$(LOCAL_PATH)/include
LOCAL_SRC_FILES:= \
src/base/ftbbox.c \
src/base/ftbitmap.c \
src/base/ftglyph.c \
src/base/ftstroke.c \
src/base/ftxf86.c \
src/base/ftbase.c \
src/base/ftsystem.c \
src/base/ftinit.c \
src/base/ftgasp.c \
src/raster/raster.c \
src/sfnt/sfnt.c \
src/smooth/smooth.c \
src/autofit/autofit.c \
src/truetype/truetype.c \
src/cff/cff.c \
src/psnames/psnames.c \
src/pshinter/pshinter.c \
src/type1/type1.c \
src/cid/type1cid.c \
src/pfr/pfr.c \
src/type42/type42.c \
src/winfonts/winfnt.c \
src/pcf/pcf.c \
src/psaux/psaux.c \
src/bdf/bdf.c \
src/gzip/ftgzip.c \
src/lzw/ftlzw.c
LOCAL_CFLAGS += -DFT2_BUILD_LIBRARY
LOCAL_MODULE := freetype
LOCAL_LDLIBS := -ldl -llog
include $(BUILD_STATIC_LIBRARY)
我的完整项目可以在这里找到
http://digitalknob.googlecode.com
它编译得很好,我没有收到任何错误。只是我使用 FT_Set_Char_Size() 时的崩溃。现在让我发疯了几天:P非常感谢任何帮助。