让ZXing工作

时间:2011-05-17 10:43:06

标签: java android barcode barcode-scanner zxing

我按照每个指示,维基,入门,指南,帮助, 我可以找到关于ZXing项目的。 经过多次调试,我终于使用ant进行编译了 core.jar,javame.jar和javese.jar。 我想将ZXing集成到我的代码中,即我希望扫描 \读取条形码并处理其数据。

我作为外部jar导入了上面提到的每个文件。然后 我转向https://code.google.com/p/zxing/wiki/DeveloperNotes使用 MultiFormatReader()。 无法解析BufferedImage类。我尝试过任何我认识的事 我甚至尝试使用android的Bitmap来解决这个问题,但它并没有帮助 我也是。

我知道我可以使用意图读取\扫描条形码,但我希望 我自己处理它而不是安装“第三方”应用程序。

任何人都可以帮助我了解我该怎么办? 很少有代码会受到赞赏。

而且,我只想扫描\读取条形码并分析其数据。

4 个答案:

答案 0 :(得分:5)

最短的答案是您不应在Android应用中使用javase.jar。它是用于JavaSE的代码。并非所有JavaSE类都在Android中。特别是Android没有像BufferedImage这样的AWT类。

您只想在项目中加入core.jar。然后使用它编写您的Android应用程序。

答案 1 :(得分:4)

杰克逊我也建议你使用inazaruk建议的方式。但如果你仍然在整合那部分代码(zxing-android)时遇到问题。

  • 只需下载zxing-core
  • 即可
  • 将此核心项目导入您的eclipse
  • 在你的应用程序的Eclipse构建路径中添加zxing-core项目的引用,这样它就不会被JVM编译,而是由Dalvik编译(只是避免使用jar文件,因为它是用JVM编译的)而只是使用https://code.google.com/p/zxing/wiki/DeveloperNotes
  • 建议的所有课程

修改 正如Sean Owen所说,android没有拥有BufferedImage类。你需要导入这些类&满足他们的依赖。

  • com.google.zxing.BinaryBitmap,
  • com.google.zxing.LuminanceSource,
  • com.google.zxing.MultiFormatReader,
  • com.google.zxing.Reader
  • com.google.zxing.Result
  • com.google.zxing.common.HybridBinarizer

然后你可以像这样使用它

 Bitmap bMap = BitmapFactory.decodeStream(new FileInputStream(file));
 LuminanceSource source = new RGBLuminanceSource(bMap);
 BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(
                              source));
 Reader reader = new MultiFormatReader();

 Result result = reader.decode(bitmap);

答案 2 :(得分:0)

以下是我为实验性应用所做的事情:

  • 下载Android版ZXing条码扫描器(here
  • 将此项目转换为Android Library
  • 删除了我不需要的所有功能
  • 以我想要的方式修改CaptureActivity,因此可以更好地与我的应用集成。

我发现这种方式更容易,因为Android在不同设备上支持统一的相机支持存在一些问题,ZXing的人已经处理好了。

答案 3 :(得分:0)

嗨大家其实我也坚持这个问题。但最后我成功运行了这个项目。当我们下载zxing项目并且我们只是导入它但是因为许多文件丢失而有错误的号码。

实际上这些文件是在整个项目中分发的。因此,如果您在Zxing-master中搜索这些文件,您可以轻松找到。复制这些文件,只需复制您的项目,就像我的工作区一样,它是#34; CaptureActivity"。可能是一个问题也是由于Java Compiler导致的编译错误(此项目需要至少Java 1.7和Android OS 4.4)。

无论我在运行这个项目时知道什么,我解释道。任何查询都会发表评论。