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.cmdC:\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.