如何将ZXing Library与Android Studio进行条码扫描?

我一直在寻找互联网如何包括zxing库到我的项目,我发现这个教程: http : //blog.dihaw.com/integrating-zxing-in-your-android-app-as-standalone-scanner /

但是,当我到达点,你需要检查BeepManager添加R导入我得到我的项目中的所有types的错误(即使在MainActivity),它无法findR.

我也发现这一个https://github.com/journeyapps/zxing-android-embedded/blob/master/README.md这似乎更容易,因为它是由gradle自动集成,但是当我同步它popup一个错误它找不到文件。

任何帮助将不胜感激:)我是新的Android Studio。

编辑:

我添加了第二个方法(具有gradle设置的那个)的设置到我的build.gradle,popup4个错误:

Error:Failed to find: com.embarkmobile:zxing-android-legacy:2.0.0 Error:Failed to find: com.google.zxing:core:3.0.1 Error:Failed to find: com.embarkmobile:zxing-android-integration:2.0.0 Error:Failed to find: com.embarkmobile:zxing-android-minimal:2.0.0 

任何帮助?

– -回答 – –

要解决这个问题,我需要在Gradle上禁用离线工作。 进入Android Studio的设置> Gradle>取消选中“离线工作”之后,你很好走!

Solutions Collecting From Web of "如何将ZXing Library与Android Studio进行条码扫描?"

您需要将以下内容添加到您的build.gradle文件中:

 repositories { mavenCentral() maven { url "http://dl.bintray.com/journeyapps/maven" } } dependencies { // Supports Android 4.0.3 and later (API level 15) compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions. // If you only plan on supporting Android 4.0.3 and up, you don't need to include this. compile 'com.journeyapps:zxing-android-legacy:2.0.1@aar' // Convenience library to launch the scanning and encoding Activities. // It automatically picks the best scanning library from the above two, depending on the // Android version and what is available. compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier. // This mostly affects encoding, but you should test if you plan to support these versions. // Older versions eg 2.2 may also work if you need support for older Android versions. compile 'com.google.zxing:core:3.0.1' } 

我的build.gradle文件是这样的:

 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.myapplication2" minSdkVersion 16 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } repositories { mavenCentral() maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' // Supports Android 4.0.3 and later (API level 15) compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar' // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions. // If you only plan on supporting Android 4.0.3 and up, you don't need to include this. compile 'com.embarkmobile:zxing-android-legacy:2.0.0@aar' // Convenience library to launch the scanning and encoding Activities. // It automatically picks the best scanning library from the above two, depending on the // Android version and what is available. compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar' // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier. // This mostly affects encoding, but you should test if you plan to support these versions. // Older versions eg 2.2 may also work if you need support for older Android versions. compile 'com.google.zxing:core:3.0.1' } 

代码在这里 。

此外,如何使用它,请参阅我的答案在这里的Stackoverflow

它包含我已经testing的方法和简单的代码。

从zxing-android-embedded的版本3开始,您只需要将这些添加到您的build.gradle文件中:

 repositories { jcenter() } dependencies { compile 'com.journeyapps:zxing-android-embedded:3.0.2@aar' compile 'com.google.zxing:core:3.2.0' } 

按照以下步骤操作: https : //github.com/journeyapps/zxing-android-embedded/

现在,它还允许对IntentIntegrator进行简单更改的纵向模式,以及更简单的自定义视图的方法。

将ZXing集成到条形码或Qr扫描最简单的方法。

全面参考: 扫描条码ZXing Android

添加依赖关系

 compile 'me.dm7.barcodescanner:zxing:1.9' 

ScanActivity

 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import com.google.zxing.Result; import me.dm7.barcodescanner.zxing.ZXingScannerView; public class ScanActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{ private ZXingScannerView mScannerView; @Override public void onCreate(Bundle state) { super.onCreate(state); mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view setContentView(mScannerView); // Set the scanner view as the content view } @Override public void onResume() { super.onResume(); mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results. mScannerView.startCamera(); // Start camera on resume } @Override public void onPause() { super.onPause(); mScannerView.stopCamera(); // Stop camera on pause } @Override public void handleResult(Result rawResult) { // Do something with the result here // Log.v("tag", rawResult.getText()); // Prints scan results // Log.v("tag", rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode, pdf417 etc.) MainActivity.tvresult.setText(rawResult.getText()); onBackPressed(); // If you would like to resume scanning, call this method below: //mScannerView.resumeCameraPreview(this); } } 

我有这个工作:

 repositories { mavenCentral() maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" } } compile 'com.google.zxing:core:3.2.1' compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar' compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar' 

我build议使用IntentIntegrator

 IntentIntegrator integrator = new IntentIntegrator(getActivity()); integrator.forSupportFragment(this).initiateScan(); 

requestCode返回IntentIntegrator.REQUEST_CODE