오류 유형 3 오류 : 활동 클래스 {}이 (가) 없습니다


397

IntelliJ Android 프로젝트가 있는데 Android Studio 0.4.0으로 성공적으로 가져 왔습니다. 매니페스트에서 아무것도 변경하지 않으면 완벽하게 작동합니다. 그러나 런처 활동을 변경하고 실행하려고하면이 오류와 함께 실패합니다.

Launching application: com.trackingeng/LandingActivity.
DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity"  
    -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN  
    cat=[android.intent.category.LAUNCHER] cmp=com.trackingeng/LandingActivity }
Error type 3
Error: Activity class {com.trackingeng/LandingActivity} does not exist.

Gradle 파일과 프로젝트 동기화를 클릭하면 다음이 출력됩니다.

Project Sync
The project 'TrackingEng' is not a Gradle-based project

실행 설정 : 여기에 이미지 설명을 입력하십시오


원본 AndroidManifest.xml 파일 은 어디에 있습니까 ?
twlkyao

같은 장소에서 프로젝트의 기본 폴더 아래에 있습니다.
Jacob

내 게시물에있는이 사진은 원본 AndroidManifest.xml인지 아닌지를 의미합니다.
twlkyao

7
스레드를 찾았습니다. 희망이 도움이 될 수 있습니다. stackoverflow.com/questions/19670607/…
twlkyao

4
OP의 경우 효과적이지 않지만 gradle sync를 수행하면 해결 Error: Activity class {...} does not exist.되었습니다.
공룡

답변:


612

리팩토링 후 비슷한 문제에 직면했습니다.
이것이 내가이 문제를 해결하기 위해 한 것입니다.

  1. 프로젝트 청소
  2. Build디렉토리를 삭제했습니다
  3. Android Studio를 다시 시작했습니다.
  4. 프로젝트 재건
  5. 운영
  6. 선택적으로 (Android의 파일 메뉴로 이동하여 "캐시 무효화 / 다시 시작 ..."을 클릭 한 후 휴대 전화에서 앱을 제거하고 다시 시도하십시오)

그리고 모든 것이 잘 작동했습니다!
핵심은 IDE다시 시작하는 것 입니다.

이것이 당신이나 다른 사람을 돕기를 바랍니다!

편집 1 :
위의 단계가 효과가 없다면 @Yasitha가 지적한 것처럼 Gradle 캐시를 삭제하는 것이 해결책 인 것 같습니다.

편집 2
아래 의견에서 몇 명의 사용자가 제안한 것처럼 때때로 장치에서 앱을 완전히 제거하고 다시 설치하여 문제를 해결할 수 있습니다. 터미널에서
간단히 입력 adb uninstall <package>하여 장치에서 앱을 완전히 제거하십시오.

편집 3 Abhishek의 답변
에서 언급했듯이 여러 사용자가 장치에 설정된 경우 장치에서 앱을 삭제해야합니다. 간단하게
Mobile Settings > Apps > [Your App] > More > Uninstall App for All Users

Android Studio 2.1 이상 업데이트

Android Studio 2.1 이상을 실행하는 경우 환경 설정에서 즉시 실행 옵션을 활성화 한 경우 (기본적으로 활성화되어 있음)이 문제가 발생할 수 있습니다.

이 옵션을 비활성화하려면 상단 메뉴 의 Preferences옵션으로 이동하여 해당 화면의 첫 번째 확인란을 선택 취소 할 수 있는지 확인하십시오.Android StudioInstant Run

Android Studio 2.1 이상에서 인스턴트 실행 비활성화

어쨌든 나를 위해 그것을 고쳤다. 원래 사용자 @yusufonder가 지적했습니다. gradle 설치가 여전히 작동했기 때문에 이것이 문제라는 것을 알았습니다.


2
빌드 디렉토리를 삭제하지 않아도 정상적으로 작동합니다.
Shivam Bhalla

12
여기 설명 된대로 gradle 캐시를 삭제했습니다. stackoverflow.com/a/25602161/630833
jayeffkay

4
이것은 늦은 항목이지만 Android Studio를 1.5로 업데이트 한 후에만이 문제에 직면하고 있으며 위의 솔루션은 제 경우에는 작동하지 않습니다.
zulkarnain shah

42
터미널에서 'adb uninstall <package>'를 실행하여 장치에서 앱을 완전히 제거하십시오
Mikhail Sharin

3
Android 7.0에서 기기에서 앱을 제거 할 때 (기기 기본 화면에서 '제거'라벨로 드래그하여) 실제로 앱은 '비활성화'되었습니다. 설정 / 앱으로 이동하여 앱을 수동으로 제거해야합니다 (또는 ADB 명령 사용). 나는 그것에 몇 번 튀어 오지만, 몇 입 후에 나는이 Android 7.0 소위 기능을 잊어 버렸습니다.
Mike Keskinov 2016 년

325

누군가에게 도움이 될 수 있습니다 :-

기기에서 테스트 할 때 앱이 제대로 제거되지 않는 경우가 있습니다 . 이를 확인하고 수정하려면 다음을 수행하십시오.

  1. 설정으로 이동하십시오 .
  2. Apps로 이동하십시오 .
  3. 앱을 선택하십시오. (여기서 앱이 제대로 제거되지 않았는지 확인할 수 있습니다) .
  4. 오른쪽 상단에있는 오버플로 메뉴를 열고 모든 사용자에 대해 제거를 선택하십시오 .
  5. 끝난. 앱을 설치 한 후 다시 시작해보십시오.

12
Android O 개발자 미리보기 3을 사용하면 앱이 앱 목록에 존재하지 않는다고 알려주므로 모든 사용자 제거 작업을 수행 할 수 없었습니다. 실행 adb uninstall {packageName}하면 문제가 해결되었습니다.
alexbchr

1
에뮬레이터의 경우 Ankit의 답변이 작동하지 않았습니다. 실행기에서 내 앱을 삭제했지만 시스템에 남아있어 문제가 발생했습니다. 이 방법을 사용하여 완전히 제거해야했습니다.
Damn Vegetables

2
thnx 남자 나는 응용 프로그램이 완전히 제거되지 않은 안드로이드 오레오 에서이 문제에 직면했다
Salman500

3
이것은 내 문제였습니다.이 사용자에게는 앱이 설치되지 않았습니다. 위에서 언급 한 절차에 따라 제거하고 작동하기 시작했습니다.
Bugs Happen

2
내 앱이 비활성화되었습니다
iamsujan

81

기기를 통해 앱을 제거 할 때 (예 : 앱을 '제거'옵션으로 드래그)이 문제가 발생합니다. 그러나 올바른 제거 방법은 다음과 같습니다.

./gradlew uninstallAll명령을 사용하십시오 . 이렇게하면 방지 할 수 있습니다 Error: Activity class {HomeActivity} does not exist.오류가 발생했습니다.

최신 정보:

게으른 경우이 작업에 약어를 사용할 수 있습니다 ./gradlew uA.

또는에서 일반적인 gradle 작업에 대한 별칭을 정의 .bash_profile하면 시간과 입력 시간이 절약되며 모든 명령을 기억하거나 오타를 걱정할 필요가 없습니다. 나는 이것을하는 것이 좋습니다.


그것이 여전히 나아 졌다고 생각했기 때문에 나빴다. Gradle은 혐오 IMO입니다.
JJF

4
이것은 Android Studio 3.1 Canary 7에서 저에게
효과적이었습니다

2
좋은 대답입니다. 일부 장치는 제거에 문제가있는 것 같습니다. 저에게는 EU 빌드의 Xiaomi Mi Mix 2입니다. 장치의 빌드 버전에서 오류가 발생한 것 같습니다.
Opiatefuchs

1
이것은 나를 위해 작동합니다. ./gradlew uninstallAll을 실행 한 후
Shanison

1
2020 년 초 현재이 방법이 저에게 효과적이었습니다.
PGMacDesign

73

이것은 당신이 다음을 할 때 발생합니다

  • 장치 / 에뮬레이터 연결
  • Android Studio (AS)에서 앱 실행
  • 앱이 컴퓨터에 연결되어있는 동안 앱을 사용 / 테스트하고 장치에서 제거
  • AS에서 앱을 다시 실행하십시오.

AS는 여전히 기기에 앱이 있다고 생각합니다.

tl; dr-이 문제를 해결하려면 앱을 제거한 후 장치를 분리했다가 다시 연결하면됩니다.


11
앱이 실행기에 표시되지 않으면 혼란스러워하지 않지만 앱이 표시되면 설정 / 앱-> "모두"를 확인하십시오. 그것은 내 응용 프로그램의 경우이며, 제거한 후에는 모든 것이 잘 작동했습니다.
Daniel Gilbert

1
@DanielGilbert가 말한 것처럼 Launcher에 나타나지 않으면 "adb uninstall package.name"으로 쉽게 제거 할 수 있습니다. 이것은 나에게도 효과가있었습니다.
Mike

이것은 나에게도 효과가있었습니다. 두 가지 버전이있는 샘플 프로젝트를 실행 중이었습니다. 첫 번째 버전을 설치 한 다음 제거하여 두 번째 버전을 설치했습니다. 오류를 해결하는 데 많은 시간을 낭비했습니다. 이 ... 안드로이드 개발 이상한, 해결할 수없는 문제의이 종류를 한 것은 이번이 처음 아니다
젠장 야채

내 경우. 장치 연결 끊기 및 연결-이 기능이 효과적이었습니다! 앱이 기기에 아니었지만, AS는 앱이 내 장치에 여전히 생각 설치하지 않은
빅토리아 Klimova에게

35

다른 사용자를 위해 앱이 이미 설치되어 있습니다. 모든 사용자에 대해 동일한 앱을 제거하십시오. 그런 다음 시도하십시오.

또는 adb 명령을 실행 한 후에 시도 할 수 있습니다.

adb uninstall PACKAGE_NAME

여기서 PACKAGE_NAME은 com.example.myapp와 같은 전체 이름입니다.


작동합니다! 내 경우에는 adb uninstall com.demo내 응용 프로그램의 이름은 어디에demo
무하마드 오비

com.demo는 패키지 이름이 될 것입니다
Dipendra Sharma

3
효과가있는 유일한 대답! Android Studio 3.4.2, API 레벨 28
ykonda

유일한 해결책. 감사!
Juan Ignacio Barisich

있는지 확인 장치가 명령을 통해 연결되어adb devices
G. Ciardini

33

나는 같은 문제가 있었으며 이것이 내가 고친 방법입니다.

이동 설치> Gradle을> 작업> UninstallAll

여기에 이미지 설명을 입력하십시오


1
이것은 나를 위해 작동합니다. 감사합니다.
Malwinder Singh

이것은 나에게도 효과적입니다. 그러나 왜 문제가 발생하고 어떻게 uninstallAll해결됩니까? 감사.
LiuWenbin_NO.

나도 일 했어!
푹신한 T 렉스

이것이 정답입니다! 최적의 효과
HatemTmi

27

이름을 바꾸거나 리팩토링 한 후에도 같은 오류가 발생했습니다. 내가 한 것은 applicationId속성 속성을 build.gradle 파일 에 추가하고 그 값을 응용 프로그램 패키지로 설정하는 것이 었습니다.

에서 build.gradle :

android {
defaultConfig {
    applicationId "com.example.myapp"  
  }
}

buidl.gradle에 applicationId를 추가하는 방법을 설명하십시오!
realtebo

대안으로 응용 프로그램의 모듈 설정에 응용 프로그램 ID를 추가 할 수도 있습니다
Michael Kern

19

AndroidManifest.xml파일 에서 활동 이름을 변경 하십시오.

지금은 말합니다 :

<activity android:name="LandingActivity" >

활동 이름의 시작 부분에 마침표추가 하십시오 .

<activity android:name=".LandingActivity" >

또는 활동 이름의 시작 부분에 패키지 이름추가하십시오 .

<activity android:name="com.trackingeng.LandingActivity" >

또한 패키지 이름에 마침표로 구분 된 두 개의 구성 요소 만있는 문제가있을 수 있습니다 (패키지 이름은 "com.trackingeng"이며보다 표준적인 패키지 이름은 "com.trackingeng.app"임)


2
@Siavash는 그것이 정확하지 않다는 것을 제외하고
dcow

2
어떻게 @dcow? 여기에서 받아 들여진 대답은 나를 위해 효과가 없었지만 이것은 대답했습니다.
Siavash

어느 것? 점 또는 3 단계 이름을 추가 하시겠습니까?
realtebo

15

아래 단계를 따르십시오. 모든 사용자의 모바일 설정> 앱> 앱> 더보기> 적중 제거 앱으로 이동하십시오.

이유 : 휴대 전화에 여러 사용자가 있고 해당 앱을 한 명만 제거했기 때문입니다.

즐겨:


선택한 답변에 이것을 추가해야한다고 생각합니다. 이것이 나를 위해 일한 것입니다.
jasxir

13

문제가 발생하는 또 다른 이유는 장치의 모든 사용자가 완전히 삭제되지 않았기 때문이라고 생각합니다.

설정-> 앱-> 앱-> 오른쪽 상단의 3 점을 클릭하십시오-> 모든 사용자 제거

그것은 나를 위해 작동합니다. 특히 앱의 아이콘을 변경하거나 AndroidManifest.xml 파일을 어지럽히는 경우가 발생합니다.


1
나는 이것이 효과가 있다고 믿을 수 없다. 내 장치에 2 개의 계정이 있고 다른 사용자를 위해 설치되었습니다.
StarWind0

예, 약간 성가 시지만 일반적으로 앱이 개발 중일 때 로딩 아이콘과 물건 등을 변경하고 싶을 때 발생합니다.
Long Dao

12

나에게 문제는 앱이 여전히 장치에 AndroidStudio 있다고 생각 했다는 것입니다.

그것을 해결하기 위해:

  1. adb데몬을 다시 시작하십시오 . 터미널 또는 명령 프롬프트에서 다음을 입력하십시오.

    adb kill-server
    adb start-server
  2. 앱을 시작해보십시오.

  3. 그래도 작동하지 않으면 이 답변을 확인하십시오 .

확인 만들기 platform-tools안드로이드 SDK는 당신에 추가됩니다 시스템 경로 변수 !


11

내 경우에는 문제가 시작된 후 전화에서 응용 프로그램을 제거했지만 아래 명령이 효과가있었습니다.

터미널 / cmd에서 아래 명령을 실행하십시오.

adb uninstall <package_name>

package_name com.example.applicationname과 같은 응용 프로그램을 다시 설치하십시오. 작동해야합니다.


1
이전에 adb를 통해 apk를 설치 한 이후로 도움이되었지만 전화의 앱 관리자를 통해 제거하면 일부 앱 추적이 남았습니다.
카루

9

나를 위해, 안드로이드 6에서 앱을 제거하면 실제로 장치에서 제거되는 대신 비활성화되었습니다.

설정> 앱> 앱을 클릭하고 제거

이것은 나를 위해 그것을 고정


그것은 효과가 있지만 더 많은 점이 있습니다. adb를 통해 삭제해도 문제가 해결되었다고 보장 할 수 없습니다. adb pm을 통해이 패키지가 보이지 않으면 이벤트입니다. 손으로해야 설정-> 앱에서 찾아 모든 사용자에 대해 삭제를 선택해야합니다. 그 후 다시 설치할 수 있습니다
Silwester

9

아래 명령이 나를 위해 일했습니다. 때때로 앱을 부분적으로 제거하면이 문제가 발생합니다.

터미널 / cmd에서 아래 명령을 실행하십시오.

adb uninstall <package_name>

그런 다음 응용 프로그램을 다시 설치하십시오. 작동해야합니다.


7

기기에 여러 개의 프로필이 설정되어 있으면 앱이 이미 다른 프로필 중 하나에있을 수 있습니다.

모든 프로필에서 앱을 제거하면 문제가 해결되었습니다.


6

저에게는 매우 구체적인 문제였습니다. 응용 프로그램을 테스트하고 응용 프로그램 데이터를 재설정 하는 Lg g5 가 있는데 전화에서 제거했지만 휴대 전화에는 응용 프로그램을 제거하지 않는 "좋은"기능이 있습니다. 하루 만에 다시 설치할 수 있습니다. 그래서 앱이 설치되었지만 휴대 전화에서 앱을 완전히 제거한 후에는 사용할 수 없습니다 ( disabled ).


나를 위해 일했다. LG G6에는 동일한 "기능"이 있습니다. 비활성화 할 방법을 찾지 못했습니다.
Cililing

6

필자의 경우 시작하려는 앱이 기기의 다른 사용자를 위해 설치 되었기 때문입니다. 설정-> 앱 (모든 앱)으로 이동하여 앱을 선택하십시오. 오버플로 메뉴를 클릭하고 "모든 사용자 제거"를 선택하십시오. 문제를 해결해야합니다.


이것은 e에도 일어 났고 설정> 앱 및 알림> 앱 정보로 이동해야했습니다. "모든 사용자를 제거"하고 다시 설치해야합니다.
luckylukein

나는 같은 문제를
겪었고 아마도이

이 오류는 프로젝트에서 여러 빌드 유형을 구성 할 때 발생했습니다.
Rahul Rastogi

6

나는 같은 문제에 직면 한 Android Studio 3.2 Beta 5를 사용합니다.

이동

File -> Invalidate Caches / Restart...

나를 위해 문제를 해결


6

이 문제가 발생하면 항상이 솔루션을 시도하고 작동합니다.

Instant Run disable 

Build -> Clean Project

File -> Invalidate Caches / Restart

그러나 나는이 예외를 한 번 발견했다. 이 솔루션은 저에게 효과적이지 않습니다. 그런 다음 문제가 에뮬레이터 현금이라는 것을 알았습니다. 나는 다만 Wipe data하고 Cold boot now문제는 해결된다.

여기에 이미지 설명을 입력하십시오


5

누군가 내 문제가 발생하여 다른 솔루션과 운이 좋지 않은 경우를 대비하여 Amazon Launcher 통합을 디버깅하는 동안 FireTV 용 adb를 통해 활동을 시작하려고했습니다. 그러나 내 프로젝트에는 60 가지 빌드 변형 (멀티 플랫폼, 멀티 앱 프로젝트)이 있었고 런타임 패키지 (및 클래스 경로)가 applicationId와 다르기 때문에 ApplicationId가 클래스 경로와 일치하지 않았습니다.

나는 도망 가려고했다 adb shell am start -n com.myappid.example.packageone.packagetwo/com.myappid.example.packageone.packagetwo.MySplashActivity

(물론 com.runtimepath.example build.gradle에 다른 applicationId와 런타임에 다른 applicationId를 추가 한 이후 많은 조합을 시도 했습니다)

마지막으로 도움이 된 것은이 게시물 https : //.com/a/36255727/5970652

다른 형식을 공개했습니다! com.myappid.example/com.runtimepath.example.packageone.packagetwo.MySplashActivity

따라서 다른 런타임 클래스 경로가있는 경우 슬래시 앞에 build.gradle applicationId를 사용하여 지정하고 나중에 런타임 클래스 경로를 지정하십시오.

당신은 또한에서이 값을 얻을 수 있습니다 BuildConfig.APPLICATION_ID그리고 this.getLocalClassName()당신이 로그 캣에서 그들을 기록 할 경우 각각.


1
이것은 정확히 내 문제였습니다! 한동안 좌절했지만 슬래시 앞에 앱 패키지 이름을 입력하고 슬래시 뒤에 정규화 된 패키지 / 클래스 이름을 입력했습니다.
차드 슐츠

4

심지어 같은 문제가 있었지만 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 문제는 티타늄 백업을 통해 실행하려고하는 특정 앱을 고정하여 위의 오류가 발생했다는 것입니다. Eclipse와 Android Studio에서 모두 시도했습니다.

실현 후 방금 앱을 unistalled하고 다시 실행했습니다.

문제 해결됨 :-)


4

내 경우에 도움이 된 트릭을 공유하고 싶습니다. 장치에서 응용 프로그램을 제거했지만 clean / rebuild / Android Studio 재시작 작업으로 도움이되지 않았습니다.

Android Studio는 애플리케이션이 여전히 기기에 설치되어 있고 배포하지 않는다고 생각하므로 ADB를 사용하여 강제로 설치할 수 있습니다.

adb install -r <your_application_from.apk>

여기서 -r데이터를 유지하면서 앱을 다시 설치해야합니다.


이것은 나를 위해 일한 유일한 것입니다 감사합니다!
휴고

4

삼성 갤럭시가 있습니다. 위의 설정에서 검색이 작동하지 않았습니다. 내 앱 설정에 전혀 표시되지 않았기 때문입니다.

검색 창에 앱 이름을 입력하여 휴대 전화에서 애플리케이션을 찾았습니다. "Work"(Mobile @ Work 사용) 프로필에 있다는 것을 깨달았습니다. 설정-> 작업 프로필-> 앱으로 이동하여 프로필 설정을 찾을 수 있습니다.

나는 이것이 다른 많은 답변들이 설정에서 찾을 수 있다고 언급 한 것과 같은 방식으로 그것을 찾지 못하는 누군가를 돕기를 바랍니다.


1
세상에, 당신은 내 하루를 저장 감사합니다. fckn samsung와 동일한 문제
Peter

4

안드로이드 스튜디오 3.5.1 에서이 문제에 직면했습니다.이 문제를 해결하기 위해 하루를 걸렸습니다. 캐시 정리, 다시 시작 및 패키지 이름 바꾸기를 포함한 모든 것을 시도했습니다. 따라서 위의 방법 중 하나라도 작동하지 않으면 시도하십시오.

gradle> Tasks> Install> UninstallAll로 이동하십시오.

링크는 다음과 같습니다. 오류 유형 3 : 활동 클래스 {...}이 없습니다


4

때로는 응용 프로그램이 모바일의 게스트 사용자에게 설치되므로 게스트를 전환하고 응용 프로그램을 제거하십시오.

또한 다음 명령을 실행하여 응용 프로그램 adb uninstall package "Your package Name"을 제거하십시오.


3

나는 또한 과거 어딘가에 같은 문제에 직면했다. 이러한 문제는 실제로 프로젝트 내에서 파일 이름 바꾸기, 파일 이동 등과 같은 일부 리팩토링을 수행 할 때 발생합니다. 파일 이름 바꾸기 및 파일 이동은 파일을 이름을 바꾸거나 이동할 때마다 프로젝트를 정리하기 위해 gradle 파일을 변경해야합니다.

빌드-> 프로젝트 정리

프로젝트를 정리하면 .class 파일이 제거 되고 프로젝트가 다시 컴파일됩니다. 기본적으로 프로젝트를 강제로 다시 빌드합니다.

때로는 이러한 유형의 오류가 청소 프로젝트에서 정리되지 않은 다음 장치에서 앱을 제거하려고 시도하고 (에뮬레이터이거나 물리적 인) 앱을 다시 실행하십시오. 이것이 당신에게 도움이되기를 바랍니다. 그것은 50 % 번 도움이됩니다.

참고 :- 오류가 발생할 때마다 Google로 이동하지 마십시오.이 작업이 작동하지 않으면 프로젝트를 정리하여 Google에 원하는 작업을 수행하십시오.


3

나는 같은 문제가 있었고 활동 시작 관리자를 리팩토링하여 문제를 해결했으며 클래스 이름을 변경하면 작동합니다.


3

비슷한 문제가 있습니다. 아래 단계를 따르십시오.
그것은 당신을 도울 것입니다 :

1- 프로젝트 정리
2- 빌드 디렉토리 삭제
3- Android Studio 재시작
4- 프로젝트 재 구축
5- 성공적으로 실행됩니다.

감사


3

LG 스타일러스가 있고 테스트 전화에서 응용 프로그램이 영구적으로 제거되지 않습니다. 설정-> 응용 프로그램에서 어노테이션이 꺼져있는 디버그 응용 프로그램 (AS로 설치 및 디버그 시도)을 발견했습니다. 휴대폰에서 앱을 제거하면 오류가 사라졌습니다.


이것은 나에게 답이 아닌 것 같습니다.
mpaskov

3

제 경우에는 다음과 같은 이유가있었습니다.

나는 2 명의 사용자가 있습니다 : 나와 손님. 앱이 둘 다에 설치되었지만 처음에는 삭제되었습니다.

손님 화면으로 전환하고 거기에서 앱을 삭제하면 앱이 설치되었습니다.

이것이 누군가를 도울 수 있기를 바랍니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.