ndk编译skia静态库

zitengxin 2012-07-06 05:41:47
程序里用了skia库,结果在android4.0上无法运行
于是想把skia库编译成静态,再链接到我的库里
在cygwin下折腾很久,编译成功了,但是改了太多的东西,结果是无法运行
官方svn上下下来的源码无法编译,提示各种错误
于是尝试linux下编译
https://sites.google.com/site/skiadocs/user-documentation/quick-start-guides/android
根据上面链接,把trunk和android两个目录下下来
编译时提示各种头文件找不到,比如ft2build.h expat.h等等
于是把这些头文件下下来,但是还是提示很多错误,比如expat.h提示各种错误
实在没办法了,发帖求救
最好能在cygwin下编译

求编译方法,越详细越好,先谢谢了
...全文
637 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
leaflw 2013-05-21
  • 打赏
  • 举报
回复
版主 求解答啊 程序运行屏幕是黑的
leaflw 2013-05-21
  • 打赏
  • 举报
回复
我也编译过了 文本画不出来
zitengxin 2012-07-11
  • 打赏
  • 举报
回复
SkFontHost_android.cpp改用SkFontHost_linux.cpp编译通过,能运行
4.0也能运行,好开心
.....



可是

所有文本都画不出来

看来还得用SkFontHost_android.cpp

zitengxin 2012-07-11
  • 打赏
  • 举报
回复
x
是我搞错源码了,编译的不知道哪里下的源码
昨天编译官网svn上的源码通过了
但是运行的时候出异常
目前定位到SkFontHost_android.cpp里的init_system_fonts
里面调用find_best_face(gDefaultFamily, SkTypeface::kNormal);
此时的gDefaultFamily为空,导致find_best_face里的第一句SkTypeface* const* faces = family->fFaces;就出异常。
ps:源码中gDefaultFamily的定义为static FamilyRec* gDefaultFamily;我改成static FamilyRec* gDefaultFamily = NULL;
搜索所有源码发现只有一处地方为gDefaultFamily赋值,但是没调用到
if (names == gDefaultNames) {
gDefaultFamily = family;
}
求解答
zitengxin 2012-07-10
  • 打赏
  • 举报
回复
昨天后来有事没弄了
谢谢楼上的
我在libjpeg里也找不到这个函数
这是从官网上下的源码,应该先提示找不到相应头文件吧,没有提示说明就在包含的那些头文件里定义的
但是那些头文件里都没有这个函数定义
CyberLogix 2012-07-09
  • 打赏
  • 举报
回复
jni/src/images/SkImageDecoder_libjpeg.cpp:59: error: 'jpeg_destroy_huffman_index
' was not declared in this scope

没有找到'jpeg_destroy_huffman_index这个函数, 应该是libjpeg里面的函数吧呵呵
zitengxin 2012-07-09
  • 打赏
  • 举报
回复
发现这个huffman_index在源码里没用到,我申明了一下可以了
现在是
jni/src/images/SkImageDecoder_libjpeg.cpp:59: error: 'jpeg_destroy_huffman_index
' was not declared in this scope
jpeg_destroy_huffman_index是一个函数,我就不知道怎么改了
zitengxin 2012-07-09
  • 打赏
  • 举报
回复
既然没人回答,我就一步一步问吧
现在重新开始编译
第一个错误是
jni/src/images/SkImageDecoder_libjpeg.cpp:64: error: ISO C++ forbids declaration
of 'huffman_index' with no type
搜遍整个工程也找不到huffman_index的定义
求huffman_index定义
zitengxin 2012-07-09
  • 打赏
  • 举报
回复
2.3我是这么干的,但是4.0无法运行,应该是skia库改过了
所以我要静态链接到我的库里面
xqhrs232 2012-07-09
  • 打赏
  • 举报
回复
记得直接用你系统编译好的SO库文件就可以了,我在2。3就是这样用的
zitengxin 2012-07-09
  • 打赏
  • 举报
回复
没人知道吗
j_f0001 2012-07-08
  • 打赏
  • 举报
回复
好深奥的东西,需要不断研究

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧