zbar,解析条码和二维码的又一利器,zbar代码是用c语言编写的,如果想在Android下使用zbar类库,就需要使用NDK将zbar编译成.so加载使用,zbar编译好的Android SDK可以在官方网站上下载,地址:http://zbar.sourceforge.net/

下面就讲解一下我们自己如何编译zbar的Android SDK,本人的开发环境为Win7 64+ant 1.9.5+Cygwin64+android-ndk-r9d-windows-x86_64

1.准备工作

1.1 下载ant,配置环境变量,并在Path路径里添加%ANT_HOME%\bin

在命令行里输入ant -v命令,出现以下提示信息,则表示ant安装配置成功

1.2 下载安装cygwin 64位版本

1.3 下载安装NDK 64位版本,解压到指定目录,如D:\Software\android-ndk-r9d

1.4 从https://github.com/zbar/zbar下载zbar代码,解压后目录如下:

 2.编译sdk

 2.1 编译libiconv

http://www.gnu.org/software/libiconv 网站上下载libiconv源码libiconv-1.14.tar.gz,解压到指定目录,如C:\libiconv-1.14

打开cygwin,切换到C:\libiconv-1.14目录,输入以下命令:./configure --build=x86_64-pc-linux-gnu --host=arm-linux-eabi

       

修改libcharset/config.h文件,将#define HAVE_LANGINFO_CODESET 1 改为#define HAVE_LANGINFO_CODESET

  

修改文件libcharset/lib/localcharset.c文件中函数get_charset_aliases (void),搜索:int c;把该变量定义放到该函数的开始处。

   2.2 编译sdk包

         打开命令行,切换到zbar的 android目录下,输入命令android update project --path .

      

如出现错误,先输入命令android list target列出当前的target,然后在命令android update project --path .后添加对应的target,如下:

      打开build-ndk.xml文件,修改ndk-build为ndk-build.cmd,同时在javac节点里添加source="1.6" target="1.6"

然后在命令行里执行以下命令ant -Dndk.dir=D:\Software\android-ndk-r9d -Diconv.src=C:\libiconv-1.14 zbar-all,其中D:\Software\android-ndk-r9d

为NDK路径,C:\libiconv-1.14为libiconv的源文件路径,如出现以下信息,则表示编译成功

此时我们可以在android\libs目录下看到刚刚编译好的文件

zbar android sdk源码编译的更多相关文章

  1. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  2. 怎样将Android SDK源码 导入到Eclipse中?

    在Eclipse中导入android sdk源码 http://blog.csdn.net/hahahacff/article/details/8590649

  3. eclipse导入java和android sdk源码,帮助文档

    eclipse导入java和android sdk源码,帮助文档 http://blog.csdn.net/ashelyhss/article/details/37993261 JavaDoc集成到E ...

  4. Android:android sdk源码中怎么没有httpclient的源码了

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 今天想使用这个API,怎么也找不到.废了好多时间... 查阅资料才知道如下解释: 在android 6.0(API 23)中,G ...

  5. 如何查看Android SDK源码版本

    PLATFORM_VERSION := 4.2.2 位于/build/core/version_defaults.mk # # Copyright (C) 2008 The Android Open  ...

  6. Android stdio Apktool源码编译

    Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...

  7. MAC 下编译 ANDROID P 源码 提示 internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12" "10.13"]

    MAC 下编译 ANDROID P 源码出现下面的问题: ninja: no work to do. [21/21] out/soong/.bootstrap/bin/soong_build out/ ...

  8. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  9. 【转】编译Android系统源码和内核源码

    原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事, ...

随机推荐

  1. python requests 保存图片

    html = requests.get('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec ...

  2. win10中通过Anaconda安装tensorflow时报错Traceback (most recent call last): File “E:\Anaconda3\lib\site-packages\pip_vendor\urllib3\response.py”, line 360, in _error_catcher yield

    问题:通过默认镜像安装,下载过程中可能会报错,下载安装失败 Traceback (most recent call last): File “E:\Anaconda3\lib\site-package ...

  3. 解决linux环境下nohup: redirecting stderr to stdout问题

    在生产环境下启动Weblogic时,发现原来好好的nohup信息输出到指定文件中的功能,突然出问题了.现象是控制台输出的信息一部分输出到了我指定的文件,另一部分却输出到了nohup.out,而我是不想 ...

  4. leetcode 877. 石子游戏

    题目描述: 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚 ...

  5. Java的string类为什么是不可变的

    最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...

  6. MyBatis(十一):Mybatis 动态SQL语句完成多条件查询

    之前文章中对in的用法做过讲解:<MyBatis(四):mybatis中使用in查询时的注意事项> 实际上对于多个参数的用法也是这是注意的: 多参&if判空&List集合判 ...

  7. Rose与PowerDesigner:两款UML建模工具的对比

    声明 本文转载自:Rose与PowerDesigner:两款UML建模工具的对比 正文 本文和大家重点讨论一下Rose与PowerDesigner:两款UML建模工具的对比,Rose和PowerDes ...

  8. 浅析String.intern()方法

    1.String类型“==”比较样例代码如下:package com.luna.test;public class StringTest { public static void main(Strin ...

  9. 011 webpack中使用vue

    一:在webpack中使用vue 1.安装vue的包 2.index.html <!DOCTYPE html> <html lang="en"> <h ...

  10. LocalDateTime

    @Component public class DateUtil { public final static String EMPTY_SRING = ""; public fin ...