Подтвердить что ты не робот

Как избавиться от предупреждения: используйте '$' вместо '.' для внутренних классов в 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>
4b9b3361

Ответ 1

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

Я попробовал также изменить только первую букву имени пакета как нижний регистр, предупреждение исчезло.

Ответ 2

Наиболее вероятная проблема возникла из-за того, что использует верхний регистр в имени пакета, поэтому измените верхний регистр на нижний регистр. если предупреждение все еще остается,

затем импортируйте пространство имен инструментов:

xmlns:tools="http://schemas.android.com/tools"

Затем игнорируйте предупреждение для конкретного элемента:

tools:ignore="InnerclassSeparator"