无需安装BarCode扫描仪即可集成ZXing QR码扫描仪

我正在尝试将ZXing QR Code集成到我的Android应用程序而不安装BarCode Scanner应用程序,我已按照以下步骤操作:

1)首先我下载了​​ZXing.zip文件并将其解压缩

2)打开ZXing项目作为Android现有项目,然后转到android文件夹并打开android文件夹,并将core.jar文件包含到名为CaptureActivity的ZXing项目中。

3)我在我的项目名为“QRCodeSample”中使用了CaptureActivity项目作为库。 (将CaptureActivity包含为库的问题)

4)我的代码如下:

public class QRCodeSampleActivity extends Activity { Button b1; static String contents; public static final int REQUEST_CODE = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub /*Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0);*/ Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); } }); } public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); Log.i("Barcode Result", contents); Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class); startActivity(i1); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { // Handle cancel Log.i("Barcode Result","Result canceled"); } } } } 

清单文件是:

                      

而且它还没有添加库

LibraryInformation

当我尝试运行我的项目时,错误消息是:

无法实例化活动ComponentInfo {com.qr.code / com.qr.code}:java.lang.ClassNotFoundException:com.qr.code in loader dalvik.system.PathClassLoader [/data/app/com.qr.code-1 apk文件]

最后我得到了答案,

从ADT 14开始,资源字段(例如R.id.decode)在库项目中定义时不再是常量

所以在ZXing库中 – > android-> com.google.zxing.client.android.CaptureActivityHandler.java和DecodeHandler.java

用if-else替换这两个类switch case语句,然后将这个ZXing库导入到你的项目中。

我自己项目的其余编码是相同的…只是库类的问题,因为这些没有根据ADT 14更新。

适用于所有Android Studio / Gradle用户

好吧,伙计们,我今天的任务是将ZXING集成到一个Android应用程序中,并且没有很好的输入来源,我会给你一个暗示是什么让我成功 – 因为它变得非常简单 (在版本2上) 。*)。

有一个真正方便的git存储库,提供zxing android库项目作为AAR存档。

您所要做的就是将它添加到build.gradle中

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

和Gradle完成了编译代码并使其在您的应用程序中可访问的所有魔力。

要在以后启动扫描仪,请使用以下类/方法:

 IntentIntegrator.initiateScan(this); // `this` is the current Activity 

如果你已经访问过该链接,你会看到我只是从那里复制并粘贴代码git自述文件。 如果没有去那里获得更多的见解和代码示例!

希望对未来的读者有所帮助。 和平:)

您需要按照链接给出的步骤进行操作

http://www.androidaz.com/development/zxing-qr-reader-direct-integration

你可以从下载core.jar

http://repo1.maven.org/maven2/com/google/zxing/core/2.2/

如果你的程序仍然只是将core-2.2.jar放在libs中并清理你的项目,那么上面的代码对我有用

我有同样的问题,经过几个小时的努力,我终于设法解决了这个问题。 正如Rubiraj指出的那样

* 右键单击您的项目>属性> Android>(在选项卡库下)添加Zxing项目*

假设您能够正确创建Zxing项目作为库,如下所述: http ://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app- 本地-使用-蚀/

MaterialBarcodeScanner:易于使用的条形码阅读器,适用于您的Android项目(使用Google Mobile Vision API)。

  1. 提供gradle依赖

    编译’com.edwardvanraak:MaterialBarcodeScanner:0.0.6-ALPHA’

  2. 构建MaterialBarcodeScanner

     private void startScan() { /** * Build a new MaterialBarcodeScanner */ final MaterialBarcodeScanner mBarcodeScanner = new MaterialBarcodeScannerBuilder() .withActivity(MainActivity.this) .withEnableAutoFocus(true) .withBleepEnabled(true) .withBackfacingCamera() .withText("Scanning...") .withResultListener(new MaterialBarcodeScanner.OnResultListener() { @Override public void onResult(Barcode barcode) { barcodeResult = barcode; result.setText(barcode.rawValue); } }) .build(); mBarcodeScanner.startScan(); } 
  3. 将它连接到一个按钮

     fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startScan(); } }); 
  4. 开始扫描!

一步一步在eclipse中设置zxing 3.2.1

  1. 从“ https://github.com/zxing/zxing ”下载zxing-master.zip
  2. 解压缩zxing-master.zip,使用eclipse在zxing-master中导入“android”项目
  3. 从“ http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/ ”下载core-3.2.1.jar
  4. 在“android”项目中创建“libs”文件夹,并将cor-3.2.1.jar粘贴到libs文件夹中
  5. 单击项目:选择“属性” – >“Java编译器”将级别更改为1.7。 然后点击“Android”将“Project build target”更改为android 4.4.2+,因为使用1.7需要使用Android 4.4进行编译
  6. 如果“zxing-master / android / app / src / main / java / com / google / zxing / client / android / camera /”中不存在“CameraConfigurationUtils.java”。 你可以从“zxing-master / android-core / src / main / java / com / google / zxing / client / android / camera /”复制它并粘贴到你的项目中。
  7. 清理并构建项目。 如果您的项目显示有关“switch-case”的错误,则应将其更改为“if – else”。
  8. 已完成。 清理并构建项目。 您可以单击“Proprties”>“Android”>单击“Is Libraries”以用于您的项目
  1. 将Zxing导入为现有项目后,Properties> Java Buildpath> Check“is library”(检查按钮),然后尝试添加Zxing作为库。

  2. 确保您的QRcodesampleActivity.java存在webclass.class