Строковый ресурс из библиотеки Android переопределяет ресурс из приложения с тем же именем - PullRequest
0 голосов
/ 22 марта 2020

Я создал простой проект Android из своего любопытства. Он содержит два модуля: app и lib. Каждый модуль имеет свое собственное имя пакета. Я создал один строковый ресурс в модуле lib и один строковый ресурс в модуле приложения. Например:

<string name="my_str">my_str_from_lib</string>

<string name="my_str">my_str_from_app</string>

Затем я установил текст в два TextView с в модуле приложения:

fromLib.text = resources.getString(ru.maksim.sample.lib1.R.string.my_str) // here I expected to see the string from the lib.
fromApp.text = resources.getString(R.string.my_str)

В обоих случаях это было my_str_from_ app Я запустил Lint и подумал, что он обнаружит факт переопределения ресурса. Но это не так. Есть ли шанс обнаружить эту ситуацию? Не обязательно с Lint. Другие инструменты меня тоже устраивают.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Ответом здесь является скрипт, который анализирует результирующий XML, в который объединяются все строки из основного модуля приложения и все его библиотеки, и находит все дубликаты.

0 голосов
/ 22 марта 2020

Ну, вы можете сделать глобальный поиск в вашей папке root. Найдите все экземпляры my_str и убедитесь, что это только строка. xml в приложении, которое использует его в качестве имени.

...