我是Android开发的新手。在我将我的eclipse和Android SDK更新到最新版本之后,我收到了一个警告:
Use '$' instead of '.' for inner classes (or use only lowercase letters in package names) AndroidManifest.xml
我找到了关于此link的一些信息。
"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's " +
"because you are using uppercase characters in your package name, which is not " +
"conventional.)"
我相信我在子包名中使用了大写字符,如com.abc.app.Promotion
。
问题是:在manifest.xml中摆脱此警告的最佳方法是什么?它仍然可以构建和运行,但我发现它很烦人。
我尝试使用重构来重命名包并修改了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?
感谢您的帮助!
编辑: 原始manifest.xml
<activity android:name=".Promotion.Promotion" ></activity>
更新了manifest.xml
<activity android:name="promotion.Promotion" ></activity>
答案 0 :(得分:46)
如果你对一个实际上不是内部类的类发出此警告,那是因为你在包名中使用了大写字符,这不是传统的。
我还尝试将包名的第一个字母改为小写,警告消失了。
答案 1 :(得分:1)
您必须在包名称中使用小写
或在应用程序标记中添加此atrr
tools:ignore="InnerclassSeparator"
要忽略此警告