2017-10-09 2 views
-10

내 AndroidManifest.xml에 아래 경고문이 있습니다.

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

경고는 다음과 같습니다

내부 클래스보다는 $를 사용해야합니다. 매니페스트 파일에서 내부 클래스 을 참조 할 때는 '.'대신 '$'를 사용해야합니다. 구분 기호로 (예 : Outer.Inner 대신 Outer $ Inner).

그래서 '.'을 사용할 경우 '.'대신 '$'를 사용하는 이유는 무엇입니까? 아직도 작동합니까?

+2

내에 정의 된 내부 클래스

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

여기서 Helper 경우 https://stackoverflow.com/a/32985736/3364266 이것을 확인하십시오 –

+0

또한 $는 자바 로더를위한 일반적인 내부 클래스 해석기입니다. 하지만 그것의 모습은 선택 사항입니다. –

+0

가능한 [자바 컴파일 된 클래스에 달러 기호가 포함되어 있습니다] (https://stackoverflow.com/questions/11388840/java-compiled-classes-contain-dollar-signs) – dasblinkenlight

답변

0

외부 클래스 이름과 패키지 이름을 혼동하지 않으려면 $을 사용하는 것이 좋습니다. 그래서 $ 패키지를 참조 할 때 InnerClass.을 참조하고 싶을 때. 예를 들어

Helper 다음 패키지 이름 (소문자는 패키지 이름 생겼을 경우) 인 경우 클래스이고 LocationServiceHelper

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

알겠습니다. '도우미 '는 꾸러미 였기 때문에 나는 그것을 리팩토링했고 경고는 사라졌다. 감사! –

관련 문제