Пакет 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-кодов
⚠️ Внимание: не забудьте объявить разрешение android.permission.CAMERA в манифесте и запросить его в рантайме на современных версиях Android — без этого сканер не запустится, а приложение может упасть с ошибкой.
Типичные ошибки и их решение
Самая частая проблема — ClassNotFoundException или NoClassDefFoundError с упоминанием com.google.zxing. Она означает, что классы библиотеки не попали в итоговую сборку: либо зависимость не добавлена, либо её «вырезал» ProGuard/R8 при минификации релизной сборки.
Вторая распространённая ситуация — конфликт версий, когда разные библиотеки проекта тянут разные версии ZXing. Проверить дерево зависимостей можно командой:
./gradlew app:dependencies
- 🧩 Класс не найден — проверьте, что зависимость объявлена как
implementation, а неcompileOnly. - ✂️ Ошибка только в релизе — добавьте keep-правила для ZXing в конфигурацию ProGuard.
- 🔀 Конфликт версий — принудительно зафиксируйте одну версию через блок
resolutionStrategy. - 📵 Чёрный экран сканера — проверьте выдачу разрешения на камеру и корректность инициализации preview.
Сравнение ZXing с альтернативами
ZXing — не единственный способ сканировать коды на Android. Google предлагает ML Kit Barcode Scanning, который работает через Google Play Services и использует машинное обучение. Выбор зависит от требований проекта.
| Критерий | ZXing | ML 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.