TBitmap resize在 android编译环境下 JNI调用方式出错的解决方法!!!
2014-04-15 21:31
281 查看
绝对简单的一段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
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
相关文章推荐
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
- 编译Android驱动对应的C测试程序出错的解决方法以及正确流程
- Cocos2dx 环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings'
- 百度 地图 slidingmenu 黑边 使用截图的方式解决黑边问题,步骤: 1.slidingMenu打开的时候调用BaiduMap的snapshot方法截图获取Bitmap对象; 2.使用
- Ubuntu 编译Android源码出现Switch.pm出错信息的解决方法
- Android之编译jni出错解决办法
- 编译Android驱动对应的C测试程序出错的解决方法以及正确流程
- Mac OS X下搭建Android Source编译环境的问题及解决方法
- Ubuntu中编译Android JellyBean 4.2.1源码出现Switch.pm出错信息的解决方法
- Android编译Libwebcore出错解决方法
- Android JNI 编译正确 但是提示程序有错误无法运行 而且还看不到任何错误提示 的解决方法
- Mac环境下Android Studio jni开发调用 javah编译不了头文件问题
- Android或者Windows Phone在HTTP调用Google Map Api时返回英文结果的解决方法
- Cocos2dx Android环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings' in import path
- 编译代码在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- Ubuntu12.04编译ANDROID ICS出错解决方法