오류 유형 3 오류:활동 클래스 {}이(가) 없습니다.
Android Studio 0.4.0으로 성공적으로 가져온 IntelliJ Android 프로젝트가 있습니다.제가 매니페스트에서 아무것도 바꾸지 않으면 완벽하게 작동합니다.그러나 시작 프로그램 활동을 변경하고 실행하려고 하면 다음 오류와 함께 실패합니다.
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
설정: 실행설:
저는 리팩터링을 한 후 비슷한 문제에 직면했습니다.
이 문제를 해결하기 위해 제가 한 일은 다음과 같습니다.
- 프로젝트 정리
- 을 삭제했습니다.
Build
- Android Studio를 다시 시작했습니다.
- 프로젝트 재구축
- 달려.
- 선택적으로 (Android의 파일 메뉴로 이동하여 "Invalidate Cache / Restart..."를 클릭합니다.전화기에서 앱을 제거하고 다시 시도합니다.)
그리고 모든 것이 잘 작동했습니다!
IDE를 다시 시작하는 것이 관건이라고 생각합니다.
1편집 1:
위의 단계가 당신에게 효과가 없다면, @Yasitha가 지적한 것처럼 Gradle 캐시를 삭제하는 것이 해결책인 것 같습니다.
2집2편
아래 댓글에서 몇몇 사용자가 제안한 것처럼 기기에서 앱을 완전히 제거했다가 다시 설치하면 문제가 해결될 수 있습니다.
형순단을 합니다.adb uninstall <package>
단말기에서 앱을 완전히 제거합니다.
3/3
Abhishek's Answer에서 언급했듯이, 여러 사용자가 장치에 설정되어 있는 경우에도 장치에서 앱을 삭제해야 합니다.
으로이동으로 하세요.Mobile Settings > Apps > [Your App] > More > Uninstall App for All Users
4집4편
Yassin Ajdi가 언급했듯이, 실행.uninstallAll
Gradle 태스크를 통해 문제를 해결할 수도 있습니다.
로 이동할 수 있습니다.Gradle > Tasks > Install > uninstallAll
그 일을 완수하기 위해서.
Android Studio 2.1 이상용 업데이트
Android Studio 2.1 이상을 실행할 때 기본 설정에서 인스턴트 실행 옵션을 사용하도록 설정한 경우에도 이 문제가 발생할 수 있습니다(기본 설정).
이 옵션을 사용하지 않으려면 다음으로 이동합니다.Preferences
의 Android Studio
상위 메뉴 및 검색Instant Run
화면의 첫 번째 확인란을 선택 취소할 수 있습니다.
어쨌든 그것이 저를 해결해 주었습니다.원래 사용자 @yusufonder가 지적했습니다.저는 Gradle 설치가 여전히 작동했기 때문에 이것이 문제라는 것을 알게 되었습니다.
장치에서 테스트할 때 앱이 제대로 제거되지 않는 경우가 있습니다.이 문제를 확인하고 해결하려면:
- 설정으로 이동합니다.
- 앱으로 이동합니다.
- 앱을 선택합니다.(여기서 앱이 제대로 제거되지 않았는지 확인할 수 있습니다.)
- 오른쪽 상단의 오버플로 메뉴를 열고 모든 사용자에 대해 제거를 선택합니다.
- 완료. 설치를 시도한 후 앱을 다시 실행하십시오.
장치를 통해 앱을 제거할 때(즉, 앱을 "제거" 옵션으로 끌 때) 이 문제가 발생합니다.그러나 올바른 제거 방법은 다음과 같습니다.
을 합니다../gradlew uninstallAll
지휘권이렇게 하면 다음을 방지할 수 있습니다.Error: Activity class {HomeActivity} does not exist.
message
업데이트:
여러분이 귀찮다면, 은 이할 수 : 귀은경이작약사수있다습니용할어를의업../gradlew uA
.
에서 합니다..bash_profile
이렇게 하면 입력하는 시간이 절약되고 모든 명령을 기억하거나 오타를 걱정할 필요가 없습니다.이렇게 하는 것이 좋습니다.
저도 같은 문제가 있었고 다음과 같이 수정했습니다.
에 가다Gradle > Tasks > Install > uninstallAll
이는 다음을 수행할 때 발생합니다.
- 장치/에뮬레이터 연결
- Android Studio(AS)에서 앱 실행
- 앱을 사용/테스트하고 컴퓨터에 연결된 상태에서 장치에서 제거
- AS에서 앱을 다시 실행해 봅니다.
AS는 당신이 당신의 장치에 앱이 있다고 생각합니다.
tl;dr - 이 문제를 해결하려면 앱을 제거한 후 장치의 연결을 끊고 다시 연결하기만 하면 됩니다.
다른 사용자를 위해 앱이 이미 설치되어 있습니다.모든 사용자에 대해 동일한 앱을 제거해 보십시오.그럼 해보세요.
또는 adb 명령을 실행한 후에 시도할 수 있습니다.
adb uninstall PACKAGE_NAME
여기서 PACKAGE_NAME은 com.example.myapp과 같은 전체 이름입니다.
이름 변경/리팩터링 후에도 동일한 오류가 발생했습니다.내가 한 것은 추가한 것입니다.applicationId
속성 특성을 mybuild.gradle 파일에 적용하고 해당 값을 응용 프로그램 패키지로 설정합니다.
build.gradle에서:
android {
defaultConfig {
applicationId "com.example.myapp"
}
}
저의 경우 문제가 발생한 후 전화기에서 애플리케이션을 제거했지만 아래 명령어가 작동했습니다.
terminal/cmd에서 아래 명령 실행
adb uninstall <package_name>
package_name은 com.example.applicationname과 같은 것입니다. 그런 다음 응용 프로그램을 다시 설치해 보십시오.그건 작동할 거야.
패키지 이름이 앱 ID와 일치하지 않아 리액트 네이티브 실행 안드로이드를 사용하는 경우가 발생했습니다. 그냥추를 추가하세요.--appId YOUR_APP_ID
.
서활이변보십오시에서 .AndroidManifest.xml
java.
지금은 다음과 같이 표시됩니다.
<activity android:name="LandingActivity" >
활동 이름의 시작 부분에 마침표를 추가합니다.
<activity android:name=".LandingActivity" >
또는 활동 이름의 시작 부분에 패키지 이름을 추가합니다.
<activity android:name="com.trackingeng.LandingActivity" >
패키지 이름에 마침표로 구분된 두 개의 구성 요소만 있는 것도 문제가 될 수 있습니다(패키지 이름은 "com.trackingeng", 더 표준적인 패키지 이름은 "com.trackingeng.app").
모든 사용자에 대한 모바일 설정 > 앱 > 당신의 앱 > 더보기 > 언인스톨 앱을 누릅니다.
이유: 전화기에 여러 사용자가 있고 하나의 앱만 제거했기 때문입니다.
문제가 발생하는 또 다른 이유는 기기의 모든 사용자에 대해 완전히 삭제되지 않았기 때문이라고 생각합니다.
Settings -> Apps -> Your Apps -> 오른쪽 상단 점 3개 클릭 -> 모든 사용자에 대한 제거
저한테는 효과가 있어요.특히 앱 아이콘을 변경하거나 AndroidManifest.xml 파일을 엉망으로 만드는 경우가 많습니다.
는 저게문제입니다.AndroidStudio
앱이 아직 장치에 있다고 생각했습니다.
수정 방법:
데몬을 다시 시작합니다. 터미널 또는 명령 프롬프트에서 다음을 입력합니다.
adb kill-server adb start-server
앱 실행을 시도합니다.
그래도 작동하지 않으면 이 답변을 확인하십시오.
확인합니다.platform-tools
Android SDK가 시스템 경로 변수에 추가되었습니다!
아래의 명령이 저에게 효과가 있었습니다.앱을 부분적으로 제거할 경우에도 이 문제가 발생합니다.
terminal/cmd에서 아래 명령 실행
adb uninstall <package_name>
그런 다음 응용 프로그램을 다시 설치해 보십시오.그건 작동할 거야.
이 문제가 발생하면 항상 이 해결책을 시도하고 효과가 있습니다.
Instant Run disable
Build -> Clean Project
File -> Invalidate Caches / Restart
하지만 이번에는 예외를 발견했습니다.이 해결책은 저에게 효과가 없습니다.그리고 나서 저는 문제가 에뮬레이터 현금이라는 것을 알게 되었습니다.난 그냥 한다.Wipe data
그리고.Cold boot now
그러면 문제가 해결됩니다.
Android 6에서 앱을 제거했을 때 장치에서 제거되는 대신 실제로 비활성화되었습니다.
설정 > 앱 > 앱 클릭 후 제거
모바일의 게스트 사용자에게 애플리케이션을 설치하는 경우가 있습니다. 따라서 게스트를 전환하고 애플리케이션을 제거해 보십시오.
또한 다음 명령을 실행하여 응용 프로그램 adb 제거 패키지 "사용자 패키지 이름"을 제거합니다.
장치에 여러 개의 프로파일이 설정되어 있으면 다른 프로파일 중 하나에 앱이 이미 있을 수 있습니다.
모든 프로필에서 앱을 제거하여 문제를 해결했습니다.
Android Studio 3.2 베타 5를 사용하지만 동일한 문제가 발생합니다.
에 가다
File -> Invalidate Caches / Restart...
나를 위해 문제를 해결했습니다.
저의 경우, 제가 실행하려는 앱이 기기에 다른 사용자를 위해 설치되었기 때문입니다.설정 -> 앱(모든 앱)으로 이동하여 앱을 선택합니다.오버플로 메뉴를 누른 후 "모든 사용자에 대해 제거"를 선택합니다.
File -> Invalidate Caches / Restart
터미널에서 사용해 보십시오.
gradlew uninstallAll
이렇게 하면 모든 버전의 앱 디버그, 릴리스, 앱이 제거됩니다.응용 프로그램을 다시 설치
저에게 그것은 매우 구체적인 문제였습니다. 애플리케이션을 테스트하고 앱 데이터를 재설정하기 위해 전화기에서 제거했지만, 전화기에는 앱을 즉시 제거하지 않는 "멋진" 기능이 있어서 하루 안에 다시 설치할 수 있습니다.그래서 앱이 설치되었지만 폰에서 앱을 완전히 제거한 후 사용할 수 없습니다(비활성화).
내 문제에 부딪혀서 다른 해결책을 찾을 수 없는 사람이 있을지도 모르니까요파이어 광고를 통해 활동을 시작하려고 했습니다.Amazon 런처 통합을 디버깅하는 동안 TV가 발생했습니다.그러나 내 프로젝트에는 60개의 빌드 변형(멀티 플랫폼, 멀티 앱 프로젝트)이 있었고 런타임 패키지(및 클래스 경로)가 applicationId와 다르기 때문에 applicationId가 어떤 클래스 경로와도 일치하지 않았습니다.
는 고했요어려도망치▁run▁to했요어▁trying를 뛰려고 했습니다.adb shell am start -n com.myappid.example.packageone.packagetwo/com.myappid.example.packageone.packagetwo.MySplashActivity
(물론 저는 많은 조합을 시도했습니다.com.runtimepath.example
build.gradle은 application입니다.Id가 추가되었고 런타임에 다른 applicationId가 추가되었기 때문입니다.)
마침내 도움이 된 것은 이 게시물 https://stackoverflow.com/a/36255727/5970652 입니다.
그것은 다른 형식을 드러냈습니다! com.myappid.example/com.runtimepath.example.packageone.packagetwo.MySplashActivity
따라서 다른 런타임 클래스 경로가 있는 경우 슬래시 앞에 build.gradle applicationId를 지정하고 이후에 런타임 클래스 경로를 지정합니다.
은 한값다얻수있다니습을서음에이러은에서 얻을 수도 있습니다.BuildConfig.APPLICATION_ID
그리고.this.getLocalClassName()
각각 로그캣에 기록하려는 경우.
제 경우에는 다음 이유가 있었습니다.
저는 저와 게스트 두 명의 사용자가 있으며, 두 명 모두에 앱이 설치되어 있었지만 처음에만 삭제되었습니다.
게스트 화면으로 전환하고 거기서 앱을 삭제하자 앱이 설치되었습니다.
이것이 누군가에게 도움이 되기를 바랍니다 :)
장치에서 응용 프로그램을 수동으로 제거한 경우 여러 사용자가 설정되어 있으면 이 오류가 발생할 수 있습니다.장치의 모든 사용자로부터 응용 프로그램을 제거해야 합니다.
저는 삼성 갤럭시를 가지고 있습니다.위의 설정을 검색해도 앱 설정에 전혀 나타나지 않아 작동하지 않았습니다.
저는 검색란에 앱 이름을 입력하여 핸드폰에서 앱을 찾았습니다."Work"(Mobile@Work 사용) 프로필에 있다는 것을 깨닫고 제거했습니다.프로필 설정은 설정->작업 프로필->앱에서 확인할 수 있습니다.
저는 이것이 다른 많은 답변들이 설정에서 찾을 수 있다고 말한 것과 같은 방식으로 찾지 못하는 누군가에게 도움이 되기를 바랍니다.
안드로이드 스튜디오 3.5.1에서 이 문제를 해결하는 데 하루가 걸렸습니다.캐시 정리, 재시작, 패키지 이름 변경 등 모든 작업을 시도했습니다.그래서 위의 것들 중 하나라도 효과가 없다면 이것을 시도해 보는 것이 좋습니다.
gradle > Tasks > Install > Uninstall All로 이동하면 됩니다.
링크: 오류 유형 3: 활동 클래스 {...존재하지 않음
Gradle -> 작업 -> 설치 -> 모두 제거.
저의 경우, 제가 실제로 패키지 이름을 변경했는데, 이 문제가 발생하기 시작했습니다.
저는 많은 속임수를 시도해 보았지만, 여기서 저는 실제로 무엇이 저에게 효과가 있었는지 설명하고 있습니다.
- 빌드 폴더를 삭제합니다. 여기에는 정리도 포함되어 있습니다(정리할 필요가 없음).
- 이것이 작동하지 않으면 안드로이드 스튜디오를 다시 시작하고 캐시도 무효화합니다.
- 그래도 오류가 발생하면 에뮬레이터의 데이터를 삭제해 보십시오. 그러면 문제가 해결될 것입니다.
활동 이름이 올바른지 확인하고 매니페스트 파일에서 패키지 이름이 올바른지 확인합니다.
언급URL : https://stackoverflow.com/questions/20915266/error-type-3-error-activity-class-does-not-exist
'programing' 카테고리의 다른 글
설정 도구 대 분산 도구: 분산 도구가 여전히 존재하는 이유는 무엇입니까? (0) | 2023.07.02 |
---|---|
sqlalchemy가 NULL이 아닙니다. 선택 (0) | 2023.07.02 |
CTE 오류: "앵커와 재귀 부품 사이에 유형이 일치하지 않습니다." (0) | 2023.07.02 |
UIGesture Recognizer를 여러 뷰에 첨부할 수 있습니까? (0) | 2023.07.02 |
Debug 모드에서 Spring Boot이 H2 콘솔을 차단하고 있습니다. (0) | 2023.07.02 |