TBitmap resize在 android编译环境下 JNI调用方式出错的解决方法!!!

绝对简单的一段source:

b:=tbitmap.create;

b.width:=9; //这个就出错了!

b:height:=9;


    没错,就是改变一个空的tbitmap对象的尺寸,在win32下没问题、linux下没问题,在 android的例子androidlcltest里没问题,就是自己开一个空的dll project有问题!!!

但,在resize前,如果有内容就不会出错,比如b.Assign(a)或loadfromfile...!!! 但是这样效率要低点!!尴尬


    不能不说这样防不胜防的陷阱还是挺吓人的,根据出错log根本不知道哪个语句出错,只是简单一句Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1) ... 因为是在android系统,根本没得在线调试。。


     不过经过一上午各种对比编译开关、对比代码,终于找出原因了: dll要编译成android的JNI调用模式,如果要用到图形处理,必须要加上Interfaces单元,否则就会有上述错误!!

     而我这个project加了Interfaces单元后又是各种unit找不到,最后在other unit files 里面加上这两个搜索路径就可通过: 

    $(LazarusDir)\lcl\interfaces\customdrawn;$(LazarusDir)\lcl\interfaces\customdrawn\android



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值