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. Django 的 slug url 正则匹配

    如果按照 .* 去匹配,最后会把 /edit/ 和 /delete/ 也匹配进去. urlpatterns = [ #... url(r'^(?P<slug>.*)/$', post_de ...

  2. SpringCloud:gateway网关模块启动报错

    1.错误信息 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with na ...

  3. Android Studio 本地化操作

    1.打开 string.xml 文件,在右上角,点 open-editor 2.点左上角的“地球”图标,就会弹出选择国家列表,输入zh会自动筛选,能很快选到中国简体中文 3.选择后,会在原来的列表中添 ...

  4. Spark2.x(六十三):(Spark2.4)Driver如何把Task(闭包等)分配给Executor

    在Spark中一个appliation可能包含多个job,每个job都是由SparkContext#runJob(...)触发的,一个Job下包含1个或多个Stage,Job的最后一个stage为Re ...

  5. js进行MD5加密(含中文),与后台JAVA加密之后结果不同(解决)

    开发小程序过程中与后台进行接口沟通,前期接口经过MD5加密和AES加密之后,后台进行解密. 今天出现一种情况,我前台加密之后的md5串与后台加密不同,后台发现可能是带用中文的原因, 这是加密之前的串: ...

  6. Ubuntu 安装最新版 (1.12) Golang 并使用 go mod

    wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz sudo tar -zxvf go1.12.4.linux-amd64.tar.gz ...

  7. 解决docx4j 变量替换 由于变量存在样式式或空白字符 导致替换失败问题

    参考文章:https://blog.csdn.net/qq_35598240/article/details/84439929 使用docx4j进行变量替换时 变量(形如:${变量})必须是无格式的, ...

  8. iOS逆向(五)-ipa包重签名

    为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...

  9. ubuntu 16.04 安装teamviewer

    很多人可能会问,为什么要在ubuntu上安装teamview?shell不就够用了吗?但实际上,很多时候,在远程连接linux的时候,我们需要在图形用户界面上进行操作.现在我就遇到了一个实际的问题:每 ...

  10. SpringBoot 上下文获取注入的Bean

    import org.springframework.beans.BeansException; import org.springframework.context.ApplicationConte ...