標籤:
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 0
修改檔案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源碼編譯