com.google.zxing: библиотека сканирования QR и штрихкодов

Пакет com.google.zxing встречается в логах Android, в зависимостях Gradle и в ошибках вроде «ClassNotFoundException: com.google.zxing» — и это не отдельное приложение, а библиотека ZXing (Zebra Crossing) для работы с QR-кодами и штрихкодами. Если вы нашли эту строку в списке разрешений приложения, в стектрейсе ошибки или в файле build.gradle, значит, программа использует ZXing для распознавания или генерации кодов.

Библиотека создана как открытый проект и широко применяется разработчиками по всему миру: она умеет читать QR Code, Data Matrix, Aztec, линейные штрихкоды (EAN, UPC, Code 128 и другие), а также генерировать изображения кодов. Ниже разберём, что именно делает этот пакет, как его подключить, какие ошибки с ним связаны и как их устранить.

Что такое ZXing и откуда берётся пакет com.google.zxing

ZXing — это библиотека с открытым исходным кодом, изначально разработанная в экосистеме Google, но живущая как независимый проект. Имя пакета com.google.zxing отражает её происхождение, однако сегодня проект поддерживается сообществом и публикуется в репозитории Maven Central.

Библиотека состоит из нескольких модулей. Основной — core, содержащий алгоритмы распознавания и генерации. Для Android существует модуль android-core, а также популярные обёртки вроде zxing-android-embedded, которые упрощают интеграцию камеры и интерфейса сканирования.

  • 📷 Распознавание — декодирование кодов с изображений и потока камеры.
  • 🖨️ Генерация — создание QR-кодов и штрихкодов в виде картинок.
  • 📦 Модульность — ядро работает на чистой Java/Kotlin без привязки к платформе.
  • 🔓 Открытая лицензия — свободное использование в коммерческих проектах.

Зачем приложениям нужна эта библиотека

Если вы обычный пользователь и видите com.google.zxing в списке разрешений или компонентов какого-то приложения — это нормально. Банковские приложения, программы лояльности, сервисы доставки и мессенджеры встраивают ZXing, чтобы сканировать QR-коды для оплаты, авторизации или добавления контактов.

Для разработчика библиотека решает задачу, которую писать с нуля крайне трудоёмко: надёжное распознавание кодов при разном освещении, углах съёмки и качестве изображения. ZXing не передаёт данные наружу — вся обработка происходит локально на устройстве, что важно с точки зрения конфиденциальности.

Как подключить ZXing в Android-проект

Для добавления ядра библиотеки в проект укажите зависимость в файле build.gradle уровня модуля. Актуальную версию стоит проверить в репозитории проекта на GitHub или в Maven Central, так как номера версий обновляются.

dependencies {

implementation 'com.google.zxing:core:3.5.3'

}

Для полноценного сканирования с камерой удобнее использовать обёртку zxing-android-embedded, которая берёт на себя работу с CameraX/Camera API, предпросмотр и разрешения. Она подключается отдельной зависимостью и запускает сканер одним вызовом активности.

☑️ Подключение сканера QR-кодов

Выполнено: 0 / 5
⚠️ Внимание: не забудьте объявить разрешение android.permission.CAMERA в манифесте и запросить его в рантайме на современных версиях Android — без этого сканер не запустится, а приложение может упасть с ошибкой.

Типичные ошибки и их решение

Самая частая проблема — ClassNotFoundException или NoClassDefFoundError с упоминанием com.google.zxing. Она означает, что классы библиотеки не попали в итоговую сборку: либо зависимость не добавлена, либо её «вырезал» ProGuard/R8 при минификации релизной сборки.

Вторая распространённая ситуация — конфликт версий, когда разные библиотеки проекта тянут разные версии ZXing. Проверить дерево зависимостей можно командой:

./gradlew app:dependencies
  • 🧩 Класс не найден — проверьте, что зависимость объявлена как implementation, а не compileOnly.
  • ✂️ Ошибка только в релизе — добавьте keep-правила для ZXing в конфигурацию ProGuard.
  • 🔀 Конфликт версий — принудительно зафиксируйте одну версию через блок resolutionStrategy.
  • 📵 Чёрный экран сканера — проверьте выдачу разрешения на камеру и корректность инициализации preview.
📊 С какой задачей вы столкнулись при работе с com.google.zxing
Ошибка ClassNotFoundException при запуске
Подключение сканера QR в своё приложение
Нашёл пакет в чужом приложении и хочу понять, что это
Генерация QR-кодов в коде

Сравнение ZXing с альтернативами

ZXing — не единственный способ сканировать коды на Android. Google предлагает ML Kit Barcode Scanning, который работает через Google Play Services и использует машинное обучение. Выбор зависит от требований проекта.

КритерийZXingML Kit
Зависимость от Google ServicesНетДа
Работа офлайнПолностьюДа (модель на устройстве)
Генерация кодовПоддерживаетсяНет
Порог входаТребует настройки камерыПроще из коробки
Размер приложенияНебольшая надбавкаЗависит от комплектации SDK

Если приложению нужна генерация QR-кодов или работа на устройствах без сервисов Google (например, некоторые модели Huawei), ZXing остаётся практичным выбором. Если важна максимальная скорость распознавания «из коробки» на массовых устройствах — посмотрите в сторону ML Kit.

Безопасность: стоит ли удалять com.google.zxing

Иногда пользователи находят строку com.google.zxing в системных логах или в описании процесса и подозревают вредоносное ПО. Сама по себе библиотека безопасна — это инструмент, а не самостоятельное приложение. Удалить её отдельно нельзя: она встроена внутрь конкретных программ.

Однако вредоносные приложения тоже могут использовать ZXing, например для кражи данных через сканирование QR-кодов. Поэтому ориентироваться нужно не на наличие библиотеки, а на репутацию самого приложения и его разрешения.

⚠️ Внимание: если незнакомое приложение запрашивает доступ к камере без объяснимой причины, откажите в разрешении и проверьте источник установки. Наличие ZXing внутри такого приложения — лишь следствие, а не причина подозрений.
Как проверить, какое приложение использует ZXing

Откройте лог ошибки или список компонентов — рядом с com.google.zxing обычно указано имя пакета самого приложения (например, com.example.myapp). В стектрейсе смотрите на верхние строки до упоминания zxing: именно там находится вызывающий код.

Генерация QR-кодов с помощью ZXing

Помимо сканирования, библиотека умеет создавать коды. Это полезно для генерации ссылок, Wi-Fi-подключений, платёжных данных или билетов прямо внутри приложения. Базовый сценарий: передать строку в QRCodeWriter, получить битовую матрицу и отрисовать её в Bitmap.

Учтите, что чем длиннее строка, тем плотнее код и тем сложнее его сканировать при маленьком размере изображения. Для надёжности задавайте размер картинки с запасом и используйте коррекцию ошибок, если это предусмотрено API выбранной версии.

Часто задаваемые вопросы

Что такое com.google.zxing в списке приложений или логах?

Это встроенная в приложение библиотека ZXing для работы с QR-кодами и штрихкодами. Она не является отдельной программой и не запускается сама по себе — её вызывает приложение, в которое она встроена.

Является ли com.google.zxing вирусом?

Нет. Это легитимная библиотека с открытым исходным кодом. Подозрения должно вызывать само приложение с сомнительными разрешениями, а не наличие в нём ZXing.

Как исправить ошибку ClassNotFoundException: com.google.zxing?

Проверьте, что зависимость добавлена в build.gradle и синхронизирована. Если ошибка возникает только в релизной сборке, добавьте keep-правила для пакета ZXing в конфигурацию ProGuard/R8.

Можно ли использовать ZXing без доступа в интернет?

Да. Распознавание и генерация кодов выполняются полностью локально на устройстве, сетевое соединение не требуется.

Что лучше для сканирования QR: ZXing или ML Kit?

Зависит от задачи. ZXing не требует сервисов Google и умеет генерировать коды, ML Kit проще в интеграции и быстрее распознаёт на массовых устройствах. Для устройств без Google Services подходит ZXing.