Заставь ZXing работать - PullRequest
1 голос
/ 17 мая 2011

Я следовал всем инструкциям, вики, началу работы, руководствам, помощи, и т.д. Я мог бы найти о проекте ZXing. После многих отладок мне, наконец, удалось скомпилировать с помощью ant core.jar, javame.jar и javese.jar. Я хотел бы интегрировать ZXing в мой код, то есть я хочу сканировать \ прочитать штрих-код и обработать его данные.

Я импортировал в качестве внешнего jar каждый из файлов, упомянутых выше. затем Я повернулся к https://code.google.com/p/zxing/wiki/DeveloperNotes, чтобы использовать MultiFormatReader (). Класс BufferedImage не может быть разрешен. Я пробовал все, что я знаю и я даже попробовал Android Bitmap для обходного пути, но это не помогло я тоже.

Я знаю, что могу использовать намерение для чтения \ сканирования штрих-кода, но я хочу обрабатывать его самостоятельно, а не устанавливать стороннее приложение.

Может кто-нибудь помочь мне понять, как я могу это сделать? Несколько строк кода будут оценены.

И снова, я только хочу отсканировать \ прочитать штрих-код и проанализировать его данные.

Ответы [ 4 ]

5 голосов
/ 17 мая 2011

Самый короткий ответ: вы не должны использовать javase.jar в приложении для Android.Это код, предназначенный для JavaSE.Не все классы JavaSE есть в Android.В частности, в Android нет классов AWT, таких как BufferedImage.

. Вы хотите включить только core.jar в свой проект.Затем напишите свое приложение для Android, используя его.

4 голосов
/ 17 мая 2011

Джексон, я тоже предлагаю вам способ, предложенный inazaruk. Но если у вас все еще есть проблемы с интеграцией этой части кода ( zxing-android ).

  • Просто скачайте zxing-core
  • Импортируйте этот основной проект в ваше затмение
  • В пути сборки вашего приложения Eclipse добавьте ссылку на проект zxing-core, чтобы он не компилировался JVM, а Dalvik (просто избегайте использования файла JAR, потому что он компилируется с JVM) и просто используйте все классы как предложено в https://code.google.com/p/zxing/wiki/DeveloperNotes

EDIT: Как утверждает Шон Оуэн, андроид не обладает классом 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);
0 голосов
/ 17 июля 2014

Привет, ребята На самом деле я тоже застрял в этой проблеме.Но наконец я успешно запустил этот проект.Когда мы загружаем проект zxing и просто импортируем его, но появляется номер ошибки, потому что многие файлы отсутствуют.

На самом деле эти файлы распространяются во всех проектах.Так что если вы будете искать эти файлы в Zxing-master, вы сможете легко их найти.Скопируйте эти файлы и просто скопируйте их в свои проекты, так как в моем рабочем пространстве это «CaptureActivity».Возможно, одна проблема также возникает из-за ошибки компиляции, которая возникает из-за компилятора Java (этот проект требует как минимум Java 1.7 и ОС Android 4.4).

Все, что я знаю при запуске этого проекта, я объяснил.Любой запрос оставьте комментарий.

0 голосов
/ 17 мая 2011

Вот что я сделал для своего экспериментального приложения:

  • Загруженная версия Android для сканера штрих-кода ZXing ( здесь )
  • Преобразовал этот проект в Библиотека Android
  • Удалены все функции, которые мне не нужны
  • Изменен CaptureActivity так, как я хотел, поэтому его лучше интегрировать с моим приложением.

Я обнаружил, что этот путь был проще, потому что у Android есть некоторые проблемы с равномерной поддержкой камеры на разных устройствах, и ребята из ZXing уже позаботились об этом.

...