Android Studio 업그레이드에서 "기본 활동을 찾을 수 없음"


461

IntelliJ Idea를 12.0.4에서 12.10으로 업그레이드했습니다.

이제 내 안드로이드 프로젝트의 모든 모듈에 오류가 발생합니다.

오류 : 기본 활동을 찾을 수 없습니다

나는 12.0.4로 되돌아 갔으며 모든 것이 다시 작동합니다.

어떤 아이디어? 플러그인이 누락 된 문제 일 수 있습니다. 플러그인이 설치되지 않았으므로 기본 활동을 찾을 수 없습니다. 또 다른 것은 로컬 구성 일 수 있었지만 의심합니다. 확인하기 위해 구성 폴더를 삭제했지만 아무것도 변경되지 않았습니다.


3
매니페스트를 보셨습니까? 어쩌면 전환 버전이나 그 무엇인가? developer.android.com/guide/components/fundamentals.html
— MaxOvrdrv 2

아니요 ...하지만 12.0.4에서 작동하지만 프로젝트를 처음부터 다시 가져옵니다.
— Saad Farooq

2
매니페스트의 열쇠, 아마도 이름 오류 또는 누락, 또는 네임 스페이스 문제
— slezica

12.0.4가 올바르게 실행되지만 12.10이 작동하지 않는 프로젝트의 7 개 모듈 모두에서 매니페스트 문제
— Saad Farooq

예를 들어, 네임 스페이스 나 프로젝트 레이아웃의 변경은 매니페스트와 동기화되지 않았을 수 있습니다.
— slezica

답변:


885

IntelliJ IDEA 또는 Android Studio 버전을 업그레이드 한 후 또는 새 APK를 생성 한 후 오류가 발생하면 IDE 캐시를 새로 고쳐야합니다.

File -> Invalidate Caches / Restart...

2
여기에 버그를 신고 하려고 할 수도 있습니다 : youtrack.jetbrains.com/issues/IDEA 나는 내가 제기 한 버그를 추적 하는 데 매우 능숙하다고 생각합니다.
— 스카이 켈지

제 생각 엔 계속 조사 중입니다 ... 각 플랫폼에서 새 프로젝트로 디렉토리를 다시 열 시간이 없었습니다.
— Saad Farooq

같은 문제가 있습니다. 매니페스트 파일에서 "기호 'MainActivity'를 해결할 수 없습니다"라는 오류도 발생합니다. Eclipse에서 프로젝트를 가져 왔습니다.
— Roberto

28
이것은 Android Studio에서 나에게 도움이되었지만 다시 시작한 후에 도구-> Android-> Gradle 파일과 프로젝트 동기화를 수행해야했습니다.
— vaughandroid


304

IntelliJ 업그레이드로 인해이 문제가 발생하지 않는 이유에 대해서는 언급 할 수 없습니다.

그러나 오류 : "기본 활동을 찾을 수 없음"은 AndroidManifest.xml에 기본 활동으로 표시된 활동이 응용 프로그램이 시작될 때 시작되지 않았다고 알려줍니다.

다음과 같은 활동이 하나 이상 있어야합니다.

<activity
        android:name="com.your.package.name.YourActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

이와 같은 인 텐트 필터가있는 활동이 하나 이상 없으면 여기에 포함 된 오류 메시지가 표시 될 수 있습니다.

응용 프로그램을 시작할 때 열려고하는 활동에 해당 의도 필터를 추가해야합니다. 그러면 문제가 해결됩니다.


개미는 잘 빌드하고 IntelliJ 12.0.4도 마찬가지입니다.
— Saad Farooq

Eclipse에서 앱을 시작했는데 기본 활동이 있습니다. 내 앱을 Android 스튜디오로 가져 왔는데 언젠가 알림 관리자와 항목을 추가 할 때까지, 즉이 오류가 발생했을 때까지 괜찮 았습니다. File-> Invalidate cach-> Restart를 수행하여 수정했습니다. 그러나 언급 한 기본 활동이 부족하여 오류가 발생하지 않았습니다.
— The_Martian

나도 일 했어! 그러나 참고 : "android.intent.xxx"를 소문자로 작성하십시오-내 잘못은 안드로이드 스튜디오 완성이 대문자를 제안했다는 것입니다 (이것은 1 시간이 걸렸습니다) :-(
— Philipp P

22
상대적으로 안드로이드에 익숙하지 않고 방금 안드로이드 스튜디오 프로젝트를 망친 사람들에게 이것은 이것이 당신이 찾고있는 대답입니다. 허용되는 답변은 업그레이드로 인해 문제가 해결 된 경우입니다.
— Tom Kidd

3
나는 이것을 설정했고 내 프로젝트는 이미 여러 번 실행되어 갑자기 잘못되었습니다. 나는 어디에 잘못되었는지 모른다. 아마도 AS의 버그 일 수 있습니다.
— Licat Julius

81

앱에 기본 활동이 있습니까?

아마도 이것은 당신의 실수 일 수 있습니다

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

1 단계 : 구성 편집 선택

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

2 단계 :이 경고보기 : 기본 활동을 찾을 수 없음 여기에 이미지 설명을 입력하십시오

3 단계 : 기본 활동 선택 여기에 이미지 설명을 입력하십시오

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

3 단계 : 변경 사항 저장 및 완료

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

행운을 빕니다

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


좋은 대답입니다! 앱에 활동이없는 경우 도움이됩니다. (서비스 만). "활동"을 "활동을 시작하지 않음"으로 변경해야합니다
— Udi Reshef

이것은 활동이없는 앱에서 작동하는 유일한 대답입니다. 감사합니다.
— sephiron

이것은 나를 위해 일했다! 실제로 매니페스트에서 기본 활동이 있었지만 어떤 이유로 Android Studio에서 찾지 못했습니다.
— ocramot

2
앞서 언급 한 단계를 수행했지만 MainActivity가 있지만 " 'MainActivity'활동이 AndroidManifest.xml에 선언되어 있지 않습니다"라고 표시되어 있습니다.
— Far

이 대답은 따르기 쉬웠다. 또한 @Udi Reshef의 의견에 감사드립니다
— Bishwas Mishra

66

올바른 방법은 다음을 매니페스트 파일에 추가하는 것입니다.

<activity
    android:name="FULL_NAME_OF_YOUR_ACTIVITY"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

다음 사이에 삽입해야합니다.

<application> </application>

캐시를 무효화 할 필요가 없습니다.


나도 일 했어! 그러나 참고 : "android.intent.xxx"를 소문자로 작성하십시오-내 잘못은 Android Studio 완성에서 대문자가 제안되었다는 것입니다 (1 시간이 걸렸습니다) :-(
— Philipp P

Good Point : "<application> </ application> 사이에 삽입해야합니다." 이것은 내 문제였다. 고마워
— Dennis Mathew

코드를 리팩토링 할 때 매우주의하십시오. 내 경우에는 실수로 '카테고리'를 '전화'로 리팩터링했기 때문에 android.intent.category가 android.intent.phone으로 변경되었습니다.
— Kenny Dabiri

Android Studio의 프로젝트 생성 마법사를 사용 했지만 여전히 수동으로 수행해야했습니다. 나는 그것이 버그라고 생각하기에 잘못입니까?
— pdoherty926

44

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 모듈 설정 열기를 선택하십시오 . 그런 다음 모듈 의 소스 탭으로 이동 하여 src 폴더를 찾아 마우스 오른쪽 버튼으로 클릭하고 소스 (파란색) 로 표시하십시오 .

편집 : 이후 버전의 Android Studio에는 소스 탭이 없지만 대신 build.gradle 파일을 편집 할 수 있습니다 : https://stackoverflow.com/a/22028681/1101730


이것은 intellij가 소스 탭의 src에서 많은 소스 파일을 삭제했음을 깨달았습니다. 패키지를 프로젝트에서 옮겼다가 다시 가져 왔습니다. 문제가 해결되었습니다
— Jesse Black

2
나는 이런 종류의 일을했지만 src 폴더를 마우스 오른쪽 버튼으로 클릭하고 "Mark Directory As ..."로 이동 한 다음 "Sources Root"로 갔다. -Android Studio 0.8.6
— elliptic1

1
매력처럼 작동하고, 현재 루트를 제거하고, src와 gen의 상위 폴더를 다시 추가했습니다
— Udi Oshi

1
모듈 설정에 액세스하는 빠른 방법은 프로젝트 탐색기를 클릭하고 F4를 누르는 것입니다.
— whyoz

3
Open Module Settings에 더 이상 소스 탭 이 없으므로 더 이상 사용되지 않습니다.
— 버디


23

Android Studio에서 실행 / 디버그 구성-> Android 애플리케이션-> 일반-> 활동-> "활동 시작 안함"옵션을 선택하십시오.


3
프로젝트가 서비스이거나 다른 이유로 기본 활동이없는 경우의 솔루션입니다.
— Aharon Manne

2
안드로이드 스튜디오 2.2.3; 실행 / 디버그 구성-> Android 앱-> myApp-> 일반-> 시작 옵션-> 시작 : 아무것도
— liteflier

21

위의 어떤 것도 도움이되지 않았습니다. 얼마 후 나는 IDEA가 행동 이름을 대문자로 바꾼 것을 발견했다. 처럼:

<intent-filter>
  <action android:name="ANDROID.INTENT.ACTION.MAIN"/>
  <category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/>
</intent-filter>

IDEA는 정상으로 되 돌린 후 기본 활동을 인식합니다.

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

19

먼저 매니페스트에 기본 활동을 포함했는지 확인하십시오.

예:

<activity android:name=".DefaultActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

모든 것을 시도했지만 아무것도 작동하지 않는 것 같습니다

  • % Home % \. gradle \ caches에서 캐시를 삭제하고 프로젝트를 다시 동기화하십시오.

아니면이 답변을 확인하십시오

https://stackoverflow.com/a/53476487/5507705


1
Android Studio 3.2.1 : 파일-> Gradle 파일과 프로젝트 동기화 ::: 문제를 해결하기 전에 캐시를 무효화하고 다시 시작한 후에이 작업을 수행해야합니다.
— Kreebog

1
이것은 나를 위해 일했습니다. 내가 믿은 것은 내 주요 활동을 루트에서 다운 스트림으로 다른 디렉토리로 옮기는 것입니다.
— Shn_Android_Dev

11

이 방법은 저에게 효과적입니다. 앱 아이콘을 클릭 한 다음 구성 편집을 선택하십시오. 편집 구성에서 기본 활동 대신 지정된 활동을 선택하십시오. 그런 다음 아래 활동 경로를 제공하십시오.

앱을 클릭하고 구성 편집

지정된 활동과 디렉토리를 선택하십시오

결국 gradle 파일과 동기화하십시오.


11

내 경우 File -> Invalidate Caches / Restart...에는 도움이되지 않았다

내 프로젝트에는 문제가 없었으며 물론 내 활동에 대한 다음 의도 필터가있었습니다.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

실제로 도움이 된 것은 Android / Gradle 캐시 폴더를 삭제하는 것입니다 (최대 10-30GB까지 증가 할 수 있음)

C:\Users\YOUR_USER_WINDOWS_NAME다음 폴더로 이동하여 삭제

  • .기계적 인조 인간
  • .AndroidStudio3.2
  • .gradle

( .AndroidStudio3.2원하는 경우 삭제하기 전에 일부 Android 구성을 저장할 수 있습니다 )

CLEAR_CACHE.cmd휴지통없이 폴더를 삭제하기 위해 이와 같은 박쥐 파일을 만들 수 있습니다

rmdir /S /Q .android
rmdir /S /Q .AndroidStudio3.2
rmdir /S /Q .gradle

훨씬 빠르게 작동하며 휴지통에서도 삭제할 필요가 없습니다.

추신 넣어 CLEAR_CACHE.cmd로C:\Users\YOUR_USER_WINDOWS_NAME

Android Studio 폴더를 삭제하고 다시 다운로드하는 것이 좋습니다.


8

인 텐트 필터를 다음으로 변경했습니다.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

DEFAULT 옵션도 추가하십시오. Process Phoenix 라이브러리를 사용하고 있었고 기본 의도를 정의하라는 메시지가 표시되었습니다. 이 추가로 내 문제가 해결되었습니다.


7

이 오류가 발생했습니다.

그리고 실행 활동 매니페스트 파일에 내가 두지 않은 것을 발견 action하고 category 텐트 필터에.

잘못된 것 :

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />

</activity>

맞은 것 :

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>

7

Android Studio를 종료하십시오.

경로로 이동 C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

/ caches 폴더 및 / tmp 폴더 제거


6

@TouchBoarder는 거의 그것을했다. "활동 시작하지 않음"을 선택해도 아무 것도 실행되지 않습니다.

Android Studio에서 실행 / 디버그 구성-> Android 애플리케이션-> 일반-> 활동-> "시작 :"옵션을 선택하십시오.

활동을 선택하십시오. 이것은 의도 한 동작을 정확하게 수정 하는 것이 아니라 올바르게 재정의하는 것입니다.

실행 / 디버그 구성 편집 및 실행 활동 지정


4

애플리케이션에 활동이없는 경우 (예 : 서비스 만) 실행 / 디버그 구성 'Launch'옵션을 Nothing으로 변경하십시오.


4

내 코드에서 이것을 찾았습니다.

<context android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</context>

매우주의 깊게 살펴보면 <activity android:name=".MainActivity"> 대신 .

분명히, 나는 어딘가에 "활동"을 리팩터링했고, AndroidManifest에서도 이름을 변경했습니다.


필자의 경우 FilterClass의 이름을 바꾸면 <intent-filterList> 태그가 생겼습니다.
— Emanuel

2
코드를 리팩토링 할 때 매우주의하십시오. 내 경우에는 실수로 '카테고리'를 '전화'로 리팩터링했기 때문에 android.intent.category가 android.intent.phone으로 변경되었습니다.
— Kenny Dabiri


4

위의 모든 답변이 도움이되지 않았습니다. 이것을 제거하십시오

<?xml version="1.0" encoding="utf-8"?>

당신의 AndroidManifest에. 그때:

File > Sync Project with Gradle Files

나는 Syncing Project With Gradle Files와인으로 잘 작동 한다는 것을 알았습니다 . 그건 그렇고 내 오류는 어디에서나 발생했습니다.
— homerun

4

내 경우에는 "activity"라는 멤버 변수를 리팩터링하고 이름을 "context"로 바꿨습니다. 리 팩터가 매니페스트 의 활동 태그에 만들어 졌다는 것을 알았고 대신 컨텍스트 태그를 찾았습니다 ... 이것은 안드로이드 스튜디오에서 정말 바보입니다!


2
이것은 안드로이드 스튜디오에서 버그입니다, 당신은 맞습니다 @tere bentikh
— mayank_droid

3

Android Studio 3.3 Canary 3에서 동일한 문제가 있습니다. Android Studio 3.0 stabile 버전의 프로젝트는 일부 정리 / 재 구축 후 기본 활동 없음 오류를 표시하기 시작하는 것보다 먼저 올바르게 작동합니다. 이 알파 버전의 Android Studio를 다시 설치하려고했습니다. 오류가 다시 발생했습니다. 그런 다음 오래된 안정된 Android에서 시작하고 apk install을 사용하면이 apk가 올바르게 작동합니다.

또한 내 프로젝트는 Instant App (기본, 기능, 인스턴트, 앱 하위 디렉토리)으로 작성되었습니다. 이 Android Studio에는 Manifest.xml 파일 에이 여러 디렉토리로 구분 된 몇 가지 문제가 있다고 생각합니다.

그래서 설정을 다음과 같이 변경했습니다. 여기에 이미지 설명을 입력하십시오


3

Android Studio부터 3.5 or 3.6시작하기 시작했고 프로젝트 재구성 등으로 Default Activity not found피곤 Invalidating Caches & Restart했습니다.

멀티 모듈과 매니페스트를 처리하는 방식 이 밝혀졌습니다. 잘못되었다. 라이브러리 모듈에만 기본 활동의 매니페스트가 있었지만 두 앱 모듈 모두에 있어야했습니다.

가정 librarymodule appmodule1 appmodule2

  1. 제거 HomeActivity에서librarymodule매니페스트 .
  2. 더하다:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. 에 appmodule1매니페스트 내부의 application태그, 나는 추가 :
        <activity
            android:name="com.app.name.AppModuleActivity1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  1. appmodule2명명에서 1을 2로 변경하는 것과 동일합니다 .

2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

그것은 나를 위해 작동합니다. 프로젝트를 다시 빌드하여 프로젝트에 오류가 없는지 확인하십시오. 그런 다음 캐시를 무효화 할 수 있습니다.


2

오류 : 기본 활동을 찾을 수 없습니다

이 방법으로 해결
>> 실행 구성 편집 >> 안드로이드 응용 프로그램 >> "실행"편집 상자에 기본 활동 클래스의 경로를 입력하십시오.


2

안드로이드 스튜디오 2.1.2 에서이 오류에 직면했습니다. 필터가 기본 매니페스트의 기본 활동에 있었지만 flavour manifest의 기본 활동에 MAIN / LAUNCHER intent-filter를 추가하여 해결되었습니다 . 심지어 병합 된 매니페스트에 있었지만 두 매니페스트에서 필터를 복제 할 때까지 스튜디오에서 찾을 수 없었습니다.


2

내 경험 : IDEA가 Java 파일을 식별하지 않으면 모든 Java 파일을 식별했는지 확인하십시오. 따라서 "활동"의 의미를 이해할 수 없습니다.

행운을 빕니다 :)

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


2

글쎄, 나는이 오류도 가지고있다.

오류 : 기본 활동을 찾을 수 없습니다

내 경우에는 마모 모듈이었습니다 .. 활동이 필요하지 않으므로 간단히

  1. 구성 편집-> 착용-> 실행 옵션-> 실행-> 없음으로 이동하십시오.
  2. 변경 사항을 적용하고 확인을 클릭하십시오.
  3. 매니페스트 파일에서 기본 활동에 대한 기존 코드를 제거하십시오.

참고 : 프로젝트를 정리하고 Gradle 파일을 동기화하는 것을 잊지 마십시오.


2

androidmanifest.xml 편집

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.java2">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivityName">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

이 답변을 확장 할 수 있습니까? 코드 블록만으로는 큰 도움이되지 않습니다
— Azsgy

2

내부 캐시 및 프로젝트 빌딩 시스템으로 인한 안드로이드 스튜디오 오작동으로 인해 때때로이 오류가 발생합니다. 우리는 기본 활동을 위해 모든 것을 완벽하게 설정했습니다. 이러한 문제에 대해 해결책을 찾았고 그것은 나를 위해 일하고 있습니다.

1 단계. Android Studio ---> 파일-> 잘못된 캐시 및 닫힌 Android 스튜디오.

2 단계. C : \ Users \ USER.AndroidStudio3.2 \ system 경로로 이동하십시오.

3 단계. 아래 폴더의 확장자가 .back 인 이름 변경 예 : compiler는 compiler.back이어야합니다.

  • 컴파일러
  • 컴파일러 서버
  • 변환
  • external-build_system
  • 뼈대
  • Gradle
  • resource_folder_cache

4 단계 : Android 스튜디오를 시작하고 프로젝트를 엽니 다.

나는 그것이 당신을 위해 작동하기를 바랍니다.


1
이것은 나를 위해 일한 유일한 대답이지만 여기에 설명 된 프로세스 외에도 "system / caches"폴더의 내용을 제거해야합니다. 그렇지 않으면 프로세스를 완료하고 Android Studio를 다시 시작한 후에 만 ​​작동합니다. 그런 다음 동일한 기본 활동을 찾을 수 없음으로 리턴되었습니다.
— 제라드

나를 위해 일한 유일한 옵션. 하드 컴퓨터를 재설정 한 후에 발생 했으므로 말한대로 일부 파일이 손상되었을 수 있습니다. 다른 옵션은 android studio를 다시 설치하는 것이었지만 운 좋게 지정한 폴더를 지우는 것으로 충분합니다.
— RJFares

2

Gradle 파일과 프로젝트 동기화가 작동하는 경우가 있습니다.이 전체 문제를 해결하려면

  1. Android Studio 종료
  2. USER-> AndroidStudio-> 시스템-> 캐시로 이동하십시오.
  3. 해당 폴더를 삭제
  4. Android Studio를 시작하십시오.

파일을 다시 색인화하며 작동해야합니다.

비슷한 질문에서 kirtan403 에게 감사드립니다 .

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