"실행기 활동이 없습니다!"라는 의미는 무엇입니까?


82

나는 안드로이드의 간단한 프로그램을 작성하고 있는데, 오류가 발생하지 않는데 그것이 무엇인지 모르겠다. 내 프로그램은 맞지만 출력이 표시되지 않습니다. 나는 다음 두 줄 때문이라고 생각합니다.

[2005-01-06 19:56:38 - my_Android] No Launcher activity found!
[2005-01-06 19:56:38 - my_Android] The launch will only sync the application package on the device!

답변:


158

다음은 AndroidManifest.xml의 예입니다. 시작시 시작하려는 활동의 인 텐트 필터에 MAIN 및 LAUNCHER를 지정해야합니다.

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="ExampleActivity"
              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>

6
그것들은 항상 정확히 똑같이 보일 것입니다. 그것들은 당신의 애플리케이션의 클래스가 아니라 일어나는 행동입니다. 마찬가지로 다른 작업에 대해 활동이 발생할 수 있습니다. 예를 들어 <action android : name = "android.intent.action.VIEW"> </ action> <category android : name = "android.intent.category.DEFAULT"> </ category> <category android : name = "android .intent.category.BROWSABLE "> </ category>
tribe84

"기본적으로"Android가 활동으로 수행 할 작업을 결정하는 데 도움이됩니다. 텐트 해당 문서의 섹션을 참조하십시오
dbryson

2
이 속성의 값을 android:name="ExampleActivity"적절한 활동 기본 클래스 로 수정하는 것을 잊지 마십시오 .
Omar

51

단일 인 텐트 필터 태그의 여러 작업 태그도 동일한 오류를 발생시킵니다.


나는 반대표를 받았습니다. 이 증상이 해결되었는지 누구든지 확인할 수 있습니까? 그것은 항상 나에게 버그처럼 느껴졌습니다.
Gusdor 2013 년

24

Gusdor가 위에서 말한 것처럼 "단일 인 텐트 필터 태그의 여러 작업 태그도 동일한 오류를 발생시킵니다." (그에게 신용을 줘! 그냥 구스 도르에게 키스 할 수있어!)
이 사실에 대한 문서를 찾지 못했습니다! 나는 새로운 (USB) 액션을 추가했고 영리하기 때문에 동일한 인 텐트 필터에 집중시켰다. 그리고 그것은 발사를 중단했습니다. Gusdor가 말했듯이 하나의 인 텐트 필터, 하나의 작업! 분명히 각 작업은 자체 인 텐트 필터에 있어야합니다.
다음과 같이 보일 것입니다 ...

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

내가 이랬을 때, WAZOO! 작동했습니다!


나는이 찾고 있었다
비제이

17

애플리케이션이 시작될 때 시작된 활동으로 설정된 활동이 있습니까?

이것은 Manifest.xml 파일에서 다음과 같이 수행됩니다.

    <activity android:name=".Main" android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

8

manifest.xml을 확인하십시오. 카테고리 LAUNCHER가 있는지 확인하십시오.

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

        </intent-filter>
    </activity>


5

응용 프로그램 태그에 활동 블록을 추가하여 문제를 해결했습니다. 마법사를 사용하여 프로젝트를 만들었는데 왜 AdroidManifest.xml 파일에 응용 프로그램 블록이 포함되어 있지 않은지 모르겠습니다. 응용 프로그램 블록을 추가했습니다.

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".ToDoListActivity"
        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>

그리고 에뮬레이터에서 원하는 출력을 얻습니다.


5

지적했듯이이 오류는 누락되거나 잘못된으로 인해 발생할 수 intent-filter있습니다.

android:exported="false"런처 활동 (매니페스트에서) 을 설정 한 경우 에도이 오류가 표시된다는 점을 추가하고 싶습니다 .


이것은 정말로 내 문제였습니다.
bvd

2

나는 똑같은 문제가 있었고 xml 태그에 '/'대신 '\'가 있음이 밝혀졌습니다. 여전히 동일한 오류가 발생했지만 구문 문제로 인해 발생했습니다.


2

Android 개발을 위해 Google에서 제공하는 표준 Eclipse IDE를 사용하는 경우 새 활동을 생성하는 동안 "Launcher Activity"확인란을 선택할 수 있습니다. 아래에서 찾으십시오.

여기에 이미지 설명 입력


2

Eclipse에서 다음을 수행 할 수 있습니다.

여기에 이미지 설명 입력

그러나 Android 매니페스트 파일 내에서 해당 변경을 수행하는 것이 좋습니다.


1

AndroidManifest.xml 파일의 애플리케이션 태그에 이것을 추가하십시오.

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

또한 사용 -sdk 태그를 android : targetSdkVersion = "16"에서 17로 편집합니다.

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

1

매니페스트 파일에서 인 텐트 필터 요소를 지정하지 못했습니다. 매니페스트 파일은 다음과 같습니다.

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="Your Activity Name"
              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>

이것을 올바르게 추가하고 확인하십시오. 이것이 도움이되기를 바랍니다 ..


1

매니페스트는 대소 문자를 구분하므로 대소 문자 불일치, 특히 다음의 단어를 비교해보십시오 MAIN.

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


1

MAIN은 애플리케이션이 시작될 때 사용할 첫 번째 활동을 결정합니다. Launcher는 애플리케이션 대시 보드에 애플리케이션을 추가합니다.

이미 가지고 있고 여전히 오류 메시지가 표시되는 경우 인 텐트 필터에서 더 많은 범주 또는 작업을 사용하고 있기 때문일 수 있습니다. 인 텐트 필터에는 이러한 태그가 하나만있을 수 있습니다. 다른 카테고리를 추가하려면 다음과 같이 다른 인 텐트 필터에 넣으십시오.

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

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

        <!--
             TODO - Add necessary intent filter information so that this
                Activity will accept Intents with the
                action "android.intent.action.VIEW" and with an "http"
                schemed URL
        -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>

0

먼저 표시하려는 활동에 Launcher 인 텐트 필터를 포함하지 않았으므로 애플리케이션이 시작될 때 시작할 활동을 알지 못합니다. 이는 manifest.xml에 실행기 필터 인 텐트를 포함하여 시스템에 알립니다.

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