Использование точек в xml-идентификаторах

это мой первый вопрос

На Java у меня никогда не было этой проблемы раньше.

Я провел два дня, потому что у меня была проблема только в режиме разработки на студии Android, раздувающей CustomView с kotlin . У меня был findByView = null после раздувания. Запуск приложения, все правильно

View.inflate(context, R.layout.widget_navigation_section_button, this) mLabel = findViewById(R.id.navigation_section_title) mLabel.setText("something") 

Это бросает NPE (для реального в kotlin: kotlin.TypeCastException: null не может быть применено к ненулевому типу android.widget.TextView at … $ mLabel $ 2.invoke (CustomView.kt: 22))

Обычно я использую шаблон <layout>[.<where_container>].<name> для ввода идентификаторов и строк в XMls (например: android:id="@+id/main.description_container.title" )
Это автоматически преобразуется в R.id.main_description_container_title (точки уведомления становятся R.id.main_description_container_title подчеркивания) в коде

Проблема была решена, когда я заменяю эти точки символами подчеркивания вручную в XML

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

Должен ли я просто отказаться от идеи и просто подчеркнуть пользователя? Глядя на это проблема только на котлине, может быть, какая-то конфигурация градиента?

заранее спасибо

Вы не можете использовать точки, потому что в следующем выражении R.id.main.description_container.title попытается найти элемент-член, который имеет тип Int а затем попробуйте найти свойство description_container , но Int не имеет такого свойства