Как избавиться от предупреждения: используйте '$' вместо '.' для внутренних классов в Eclipse
Я новичок в разработке Android. После того, как я обновил свое затмение и Android SDK до последней версии, я получил предупреждение:
Use '$' instead of '.' for inner classes (or use only lowercase letters in package names) AndroidManifest.xml
Я нашел некоторую информацию об этой ссылке.
"When you reference an inner class in a manifest file, you must use '$' instead of '.' " +
"as the separator character, e.g. Outer$Inner instead of Outer.Inner.\n" +
"\n" +
"(If you get this warning for a class which is not actually an inner class, it " +
"because you are using uppercase characters in your package name, which is not " +
"conventional.)"
Я считаю, что я использовал символы верхнего регистра в имени подпакета, например com.abc.app.Promotion
.
Вопрос: какой лучший способ избавиться от этого предупреждения в manifest.xml? Он все еще может строить и запускать, но я нахожу это настолько раздражающим.
Я попытался использовать refactor для переименования пакета и изменил файл manifest.xml android:name="com.abc.app.promotion.Promotion"
, но получил эту ошибку:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.abc.app/com.abc.app.TabView}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.abc.app/com.abc.app.promotion.Promotion}; have you declared this activity in your AndroidManifest.xml?
Спасибо за помощь!
EDIT:
original manifest.xml
<activity android:name=".Promotion.Promotion" ></activity>
обновлено manifest.xml
<activity android:name="promotion.Promotion" ></activity>
Ответы
Ответ 1
Если вы получите это предупреждение для класса, который на самом деле не является внутренним классом, это потому, что вы используете символы верхнего регистра в имени вашего пакета, что не является обычным.
Я попробовал также изменить только первую букву имени пакета как нижний регистр, предупреждение исчезло.
Ответ 2
Наиболее вероятная проблема возникла из-за того, что использует верхний регистр в имени пакета, поэтому измените верхний регистр на нижний регистр. если предупреждение все еще остается,
затем импортируйте пространство имен инструментов:
xmlns:tools="http://schemas.android.com/tools"
Затем игнорируйте предупреждение для конкретного элемента:
tools:ignore="InnerclassSeparator"