зависимость Android от имен переменных ресурса - PullRequest
0 голосов
/ 28 марта 2012

У меня очень странные проблемы в моем приложении. Я добавил файл макета с именем add_new_item и получил исключение. Я даже не устанавливал этот XML-файл в качестве содержимого в любой деятельности. И исключение пришло в библиотечной функции, которая не была затронута. Поэтому, пытаясь найти основную причину, я просто попытался переименовать файл с именем, подобным «data_entry_form», и исключение исчезло!

После этого я снова сталкиваюсь со странным подобным вопросом. У меня есть кнопка с именем изображения «add_new_itm». У меня есть макет с 4 кнопками, одной из которых является эта кнопка. После установки этого макета, если я нажму любую из этих кнопок, чтобы перейти к другому занятию, измените ориентацию телефона и вернитесь к этому занятию с помощью 4 кнопок и снова нажмите любую кнопку, после чего отобразится любой макет, в качестве фона которого будет добавлено изображение «add_new_item». то есть макет с 4 кнопками (четвертая - add_new_item) -> нажмите кнопку 1, чтобы перейти на новый экран -> повернуть телефон-> вернуться к макету с 4 кнопками -> нажмите кнопку 1 еще раз -> на экране будет изображение add_new_item в качестве фона, занимающего полный экран.

Теперь я попробовал просто переименовать изображение, кнопку, и все работает нормально.

Не могли бы вы объяснить это странное поведение

1 Ответ

1 голос
/ 28 марта 2012

Эти вещи, вероятно, происходят, потому что тот факт, что если вы используете библиотеку для своего проекта, которая содержит файлы макетов, имена файлов макетов и макетов библиотек не должны пересекаться.Компилятор генерирует один файл R.java как для вашей, так и для библиотечной компоновки, и он не сможет этого сделать, если файлы имеют одинаковые имена.Надеюсь, это поможет.

...