2017-10-09 91 views
-10

在我的AndroidManifest.xml中,我在下面的行代码中有一个警告。

<service android:name=".Helper.LocationService"/> 

的警告是:

内部类应该使用$,而不是。当您在清单文件中引用内部 类时,您必须使用'$'而不是'。'。作为 分隔符,即Outer $ Inner而不是Outer.Inner。

所以,如果使用'。'代替'。',为什么要使用''''。仍然有效?

+2

限定的内类https://stackoverflow.com/a/32985736/3364266检查此 –

+0

此外$是Java加载器的传统内部类解析器。但它看起来像这里它是可选的 –

+0

[java编译类包含美元符号]的可能重复(https://stackoverflow.com/questions/11388840/java-compiled-classes-contain-dollar-signs) – dasblinkenlight

回答

0

建议使用$以免混淆外部类名称与包名称。所以$当你想参考包时参考InnerClass.

例如,如果Helper那么一个包的名称(小写建议用于包名):

<service android:name=".helper.LocationService"/> 

其中如果Helper是一个类和LocationService是内部Helper

<service android:name=".Helper$LocationService"/> 
+0

我明白了! “助手”是一个包,所以我重构了它,警告消失了。谢谢! –