개발모음집

The activity must be exported or contain an intent-filter 에러 본문

Android

The activity must be exported or contain an intent-filter 에러

void 2017. 7. 23. 18:04



안드로이드 작업중에 노트북 마우스패드 위로 내 손이 지나가면서 액티비티 코드가 있는 창에서 오른쪽버튼을 누르며 무언가를 클릭해버렸다. 


그리고 빌드를 했을 때 The activity must be exported or contain an intent-filter 라는 에러가 떴다.

구글링 검색결과 매니페스트에서 해당 액티비티태그에 android.export:"true"라는 걸 추가하라고 나왔다.


android:exported  다른 애플리케이션의 컴포넌트에서 이 액티비티를 런치 할 수 있는지를 설정한다. false”라면 이 액티비티는 같은 애플리케이션 혹은 같은 유저 ID를 가진 애플리케이션 컴포넌트만 런치 할 수 있다. 디폴트는 액티비티가 인텐트 필터를 포함하는지에 달려있다. 필터가 없다면 디폴트 값이 false이고 필터가 있다면 true이다.

출처: [1.너니나야 이야기]


매니페스트에 저 코드를 추가하니 애뮬레이터에서 빌드는 되었으나 서브액티비티(메인액티비티가 아닌 액티비티)에서 시작했다.


알고보니 모듈화된 서브액티비티로 빌드하고 있었던 것이다.
(안드로이드 스튜디오에서 두번 째 줄에 run하는 버튼이 있는데 그 옆에  보통은 "app"이라고 써있다. 그게 서브액티비명으로 되어있었음)

<참고그림>

모듈을 app으로 다시 변경하고 빌드하니 정상적으로 동작한다.




'Android' 카테고리의 다른 글

Android OpenCv 이미지 필터 + 얼굴인식  (10) 2017.07.26
Android MediaPlayer Error - (1, -2147483648)  (0) 2017.07.25
Log 짤림 현상 해결  (0) 2017.07.22
Google Places API Web Service API 키발급  (0) 2017.07.21
fcm 삽질  (0) 2017.07.14