iphone 开发中使用zbar时遇到的几个典型问题解决方法。
 
在近期的一个ios项目中使用到了一个二维码扫描库(Qrcode)--ZBar, 期间遇到2个问题。
 
1. zbar下载后使用其libzbar.a 发现无法再arm7上运行。
2. zbar使用过程中,如果多次打开摄像头扫描Qrcode,会出现memory leak problem, 导致其内存指数型增长,大概8次调用后即耗费了85M 左右的内存, 最后导致app崩溃。
3. libzbar.a 在重新编译后, 无法再在simulator中运行,编译链接时出现错误提示:
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
      objc-class-ref in HelloWorldViewController.o
  "_ZBarReaderControllerResults", referenced from:
      -[HelloWorldViewController imagePickerController:didFinishPickingMediaWithInfo:] in HelloWorldViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
 
 
1.libzbar.a无法编译链接成功的问题。
打开zbar.xcodeprj ,在指定的a7 simulator平台或者实机上重新编译,将libzbar.a替换原有的。
 
 
2. mem leak 问题的解决。
找到ZBarReaderViewController.m 修改其loadView方法,改成如下形式。
 
- (void) loadView
{
   self.view = [[[UIView alloc]
                    ,  ,  ,  )] autorelease ];
}
 
添加了autorelease之后, 其内存使用状况就可以稳定在0.1M的范围内。
 
3. zbar的此问题出现的原因是: 在我解决上面的第二个问题时,只提取了Debug-iphoneos文件夹下的libzbar.a,此文件只能被实机link, 若要使得编译结果能device 和 simulator都能link, 可以依照如下方法解决。
主要思路:
1. 重编译时,设置Build Settings下的Architectures 和 valid Architectures为 arm64, armv7 , armv7s.
2. 重编译时,设置iOs deployment target 为ios 7.0 .
3. 在Product菜单中选择Schema->Edit Schema->Run->Build Configuration 为: Release。
4. 选择libzbar 分别选择不同实机和设备, 点击三角Run。
5. 在Xcode 工作区Products下非红色的libzbar.a ,右键找到其所在目录。 返回上一级
6. 运行: lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a
7. 拖拽 生成的libzbar.a 到 xcode 工程目录中, 选择copy到工作区。 
8. 完成!
 
 
参考:
http://stackoverflow.com/questions/22560899/xcode-5-1-undefined-symbols-for-architecture-x86-64-zbar
http://stackoverflow.com/questions/5387076/running-a-release-build-with-xcode-4
http://stackoverflow.com/questions/5287213/how-can-i-build-for-release-distribution-on-the-xcode-4
http://stackoverflow.com/questions/5706548/how-do-i-create-a-release-build-in-xcode-4
http://stackoverflow.com/questions/12339969/zbar-ifdef-issue-with-minizip-in-ios
http://stackoverflow.com/questions/18638319/zbar-memory-leak-on-ios
 

最新文章

  1. Source Insight 3.X 标签插件v1.0发布
  2. Css定位之relative_慕课网课程笔记
  3. Linux 下 Console / 控制台 复制粘贴快捷键
  4. 51nod百度之星2016练习赛
  5. Javascript实现计数器,定时警告和停止
  6. Linux学习之七——乱码的解决方案
  7. SignalR记录
  8. Android应用资源--之属性(Attribute)资源
  9. ##DAY13——可视化编程之XIB
  10. read/write拥塞与非拥塞
  11. 【Egret】中tree组件使用案例
  12. Android可以换行的布局
  13. 201521123005《java程序设计》第三周学习总结
  14. java学习札记
  15. SSL/TLS抓包出现提示Ignored Unknown Record
  16. 关于vue-router,路由重定向的使用分析
  17. MQ单一消息完整流程
  18. Springboot中的连接池
  19. springmvc ajax传递json值时出现400错误 (问题出在sql上)
  20. Docker swarm 使用服务编排部署lnmp

热门文章

  1. jQuery 发送验证码倒计时按钮 复制代码
  2. 分析jQuery源码时记录的一点感悟
  3. gzcms技术开发文档
  4. PLT redirection through shared object injection into a running process
  5. iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redundancy
  6. ExtJs4.2中Tab选项卡的右击关闭其它和关闭当前功能不准确的解决方法
  7. Go语言类型转换库【github.com/demdxx/gocast】的用法
  8. window批处理杀死指定端口进程
  9. Oracle官方文档
  10. Flash:移除匿名函数监听器EventListener