A. 在android中使用googlezxing實現二維碼
先打開本地下載,復制文件,拷貝到他們的項目中即可。
首先我們打開google的zxing的地址,googledezxing地址(本地下載),打開之後我們會看到界面,將這個文件下載我們本地,下載好之後我們需要復制android文件下的幾個類,根據這些類名稱在android文件下找到這些類,拷貝到他們的項目中,拷貝之後會有報錯,我們需要將android文件下的res中的文件也拷貝到我們的項目中。完成之後我們還要依賴zxing的核心類庫,當我們的項目不報錯的時候,就可以先實現掃描二維碼和生成二維碼。
B. android studio怎麼導入對zxing的依賴
下面分兩種情況介紹一下如何導入第三方類庫。 1、對於jar的類庫,非常簡單,只要在項目根目錄下新建一個libs目錄,然後把jar復制進去,在jar上點擊右鍵,選擇Add as library,即可完成依賴的添加。 2、對於github等網站上下載的源碼類庫,是無法通過這種方式添加的。首先把git clone下來的整個文件夾放入項目根目錄下,這里以我自己的開發包為例,我的開發包名字是ShunixDevKit,裡面有一個lib目錄才是真正的類庫,那麼我們要做的就是手動在settings.gradle裡面添加: include ':ShunixDevKit:lib' 注意,gradle使用:作為路徑分隔符。這樣Android Studio就知道了我們的類庫放在哪裡,當然這樣還是不夠的,要讓項目能使用類庫,我們還需要添加這個類庫作為項目的依賴,選擇File->Project Structure,然後選中主mole的名稱,點擊dependencies,添加:ShunixDevKit:lib就可以了,gradle的build就能成功。 以上就是添加第三方類庫作為依賴的過程。這里需要注意一下的地方就是,導入的類庫根目錄下的gradlew文件一定要可執行,否則Android Studio會提示錯誤,而且根據錯誤信息很難找出來這個錯誤,我自己因為這個搞了很久,希望對大家有幫助。
C. 如何在安卓手機開發利用手機攝像頭掃描一維條形碼及對其進行本地分析(不聯網)、最後儲存為文本文件....
導入第三方jar,如QrCodeScan-master,裡面已經集成了調用手機攝像頭掃描的方法,你只需把它集成到你 的項目中就可以了。至於開發環境:Windows,牛逼的就用Linux。開發工具:eclipse或者Android studio都可以
D. 請教一下Android Studio中ZXING的用法
因為這個zxing的庫是屬於library,如果你復制到項目中以後,會有緩存問題
你可以先clean一下項目,將緩存文件清除
建議使用Android Studio做開發工具,Android studio是基於Intellij IDEA專門為安卓開發的IDE,自從android Studio 1.0正式版發布以後google已經正式使用android Studio了,目前版本是 1.3.2 正式版
E. android zxing需要哪些許可權
在導入zxing的android源碼之前,先去官方下載zxing的源碼:http://code.google.com/p/zxing/downloads/list。
我這里下載的是1.6版本的,我試驗了幾個版本,發現2.0以後的版本實際用起來沒有1.6和1.7版本的好用,最後選擇了1.6版本。
zxing 1.6源碼結構如下:
F. android掃二維碼付款怎麼做
首先需要用到google提供的zxing和core.jar文件,可以在csdn上下載
解壓zxing,並將android文件夾作為項目導入到eclipse中
打開文件列表,在libs文件中導入core.jar,並修改掉部分報錯的地方(都是小問題,按照提示修改就行)
項目在這個時候就可以運行了,如果想通過結果來打開網址鏈接的話還需要對部分代碼進行修改。首先找到CaptureActivity.java,並打開文件
找到函數handleDecodeInternally,這個函數就是對掃描到的結果進行顯示處理的函數,鍵入下圖所示的函數就可以通過對話框的方式顯示網址鏈接,並且通過按鈕確認訪問(其中WebViewAct是一個java文件,是一個新的activity,利用webview控制項顯示網頁的,並有自己的layout文件)
G. android studio 怎麼引用Zxing包
1.下載ZXing庫
首先需要一個ZXing庫和Core Jar包
ZXing庫: https://github.com/zxing/zxing
Core Jar包 :http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/core-3.2.1.jar
主要是用紅框那兩個包,而core包你可以編譯成jar包或者用我上面那個jar包鏈接下載。
2.接入
在你項目中,File -> New -> Import Mole 把剛下載的android包添加進入
其實現在是兩個項目,為了區別是依賴庫,首先在File -> Project Strcture -> 在Mole選擇自己的項目 Dependencies ->加上Mole Dependency ,然後在ZXing的build.gradle下第一行改成如下,還有把下面的 applicationId那行刪掉。
修改前
apply plugin: 'com.android.application'
修改後
apply plugin: 'com.android.library'
1
2
3
4
5
1
2
3
4
5
然後會報一堆紅色錯誤,這是正常的。下一步是把Core Jar包導入ZXing,在ZXing創建一個libs文件夾,把Core Jar放進去,然後右鍵 As Add Library。
錯誤已經沒了一半,接下來發現會少一個CameraConfigurationUtils類,這個就是剛才在android-core下的那一個類,把它拖到camera包下就好了。
接下來的錯誤都能Alt+Enter解決,把Switch改成if else。到這步不行的同學可以試試移除Mole再試試。
運行時就會報Execution failed for task 『app:processDebugManifest』,只要自己項目的AndroidManifest.xml文件 application標簽加上 tools:replace=」icon,theme」,然後alt+Enter導入命名空間就好了。
3.使用
在自己的項目中startActivity CaptureActivity 就可以了。
返回的數據在這行代碼裡面。
CharSequence displayContents = resultHandler.getDisplayContents();
1
1
至於橫屏改為豎屏,在AndroidManifest.xml文件的CaptureActivity 改一下就好了。
android:screenOrientation="portrait"
H. android開發 如何實現掃描本地二維碼圖片
開源的二維碼掃描庫主要有zxing和zbar,zbar在iPos平台上應用比較成熟,而在Android平台上主流還是用zxing庫,因此這里主要講述如何利用zxing進行二維碼開發。
如何將zxing的Android源碼導入工程。
在導入zxing的android源碼之前,先去官方下載zxing的源碼http://code.google.com/p/zxing/downloads/list。
這里以1.6版本為例,zxing 1.6源碼結構如下:
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.qrcode"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="7"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/><!--震動許可權-->
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera"/><!--使用照相機許可權-->
<uses-featureandroid:name="android.hardware.camera.autofocus"/><!--自動聚焦許可權-->
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activityandroid:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--隱藏鍵盤--><!--全屏-->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>
</application>
</manifest>
這種情況大致就可以實現二維碼掃描了,想細化的話,還可以多看看安卓二維碼掃描開發相關的教程
I. android項目中加入zxing,混淆打包出錯,求解決
寫在視圖xml中的onClick響應出錯. 因為寫在xml中的onClick是通過反射調用的, proguard認為它們沒有在代碼中被調用過, 所以將它們從代碼中除掉或改名了. 解決方法:
在proguard.cfg中添加以下代碼, 就可以防止被配在視圖xml中的onClick方法被proguard優化掉
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}123123
jni反調Java方法
這些類或方法同樣可能會被proguard認為沒有調用過而被除掉, 或都被改名. 這些方法最好統一寫在一個類中, 然後這個類不作優化, 或是找出所有jni調用過的類與方法, 在proguard.cfg中配置, 不對它們作優化
其它反射調用的java類與方法
使用反射時一定要注意proguard可能會認為那些方法未被調用過, 會在代碼優化過程中將它們改名或除去. 在使用反射的地方一定要在proguard.cfg中配置, 不優化反射調用過的類和方法
最後在proguard優化過後會產生一些文件
mp.txt – 描述.apk文件中所有類文件間的內部結構
mapping.txt – 列出了原始的類,方法和欄位名與混淆後代碼間的映射。這個文件很重要,當你從release版本中收到一個bug報告時,可以用它來翻譯被混淆的代碼。
seeds.txt – 列出了未被混淆的類和成員
usage.txt – 列出了從.apk中刪除的代碼
要注意分析mapping.txt與usage.txt看xml視圖中寫的onClick響應函數, jni調用到的java類與方法, 反射調用過的類與方法是否被混淆或重命名
-keep class com.badlogic.gdx.backends.Android.**{ *;}
的只是不混淆:這個包下的類(不包括子包里的東西),用到一個第三文的類就要把這個類所在的包,像上面加上
還要注意的是android-support-v4.jar這個包問題,這里加上了對這個jar包的處理
第三方jar的混淆,
-optimizationpasses 5
-dontusemixedcaseclassnames
-
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity // 繼承activity,application,service,broadcastReceiver,contentprovider....不進行混淆
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.
-libraryjars /libs/android-support-v4.jar
-libraryjars /libs/gdx-backend-android.jar
-libraryjars /libs/gdx.jar123123
// 這里不對第三方的jar包的提出WARN
-dontwarn com.badlogic.**
-dontwarn android.support`這里寫代碼片`.v4.**
-dontwarn android.support.v4.view.**12341234
// 這里對第三方jar包的類不進行混淆
-keep class com.badlogic.gdx.backends.android.**{ *;}
-keep class com.badlogic.gdx.**{ *;}
-keep class com.badlogic.gdx.graphics.g2d.**{ *;}
-keep class com.badlogic.gdx.graphics.**{ *;}
-keep class android.support.v4.view.**{ *;}123456123456
// 這里第三方JAR包處理結束
-keepclasseswithmembernames class * { // natvie 方法不混淆
native ;
} 12341234
-keepclasseswithmembers class * {
// 對於所有類,有這個構造函數不進行混淆,主要是為了在layout中的,自定義的view
public (android.content.Context, android.util.AttributeSet);
} 12341234
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
} 123123
-keepclassmembers class * extends android.app.Activity {
// 這個主要是在layout 中寫的onclick方法android:onclick="onClick",不進行混淆
public void *(android.view.View);
} 12341234
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
} 12341234
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}