Я использую библиотеку zxing для сканирования штрих-кода в моем приложении.Поэтому я установил проект zxing как библиотеку и добавил эту библиотеку в свой проект (свойства -> android -> add library)
После добавления проекта библиотеки при сборке кода я вижу, что есть два RФайлы .java, созданные в моем проекте.
Один находится по пути: gen \ com \ google \ zxing \ client \ android
, а другой: gen \ myproject
Первый имеет все переменные ресурса из библиотеки плюс переменные ресурса в моем проекте.Второй имеет переменные ресурса только из моего проекта.Когда добавляется новый макет или переменная ресурса, он обновляется в обоих файлах
Так что я сомневаюсь: 1. почему есть два файла R.java 2. Есть ли способ, которым я могу прекратить генерировать тот со всемипеременные проекта библиотеки
Из-за этого поведения я столкнулся с очень странными проблемами, которые было очень трудно отладить.
В моей библиотеке zxing есть "захват" макета, который будет установлен, когда мыпопробуйте отсканировать штрих-код.Всякий раз, когда я добавлял какой-либо макет или любую переменную ресурса с именем, начинающимся с буквы «a» / «b», мое приложение давало странные поведения.И все работало отлично, когда я просто переименовал макет. Позже я обнаружил, что он как-то связан с идентификатором «capture» в файле R.java.Когда я определяю макет с буквой, начинающейся с, он будет вставлен в список R.java перед «захватом», и, таким образом, идентификатор для захвата менялся.(В текущем проекте zxing есть еще один файл R.java, который я установил в качестве библиотеки. Похоже, что идентификатор для захвата в моем файле R.java и в библиотеке zxing R.java должен быть одинаковым)
Не могли бы вы объяснить, что на самом деле здесь происходит