Что это значит: "Нет активности Launcher!"

Я пишу простую программу Android и не получаю ошибок, я не знаю, что это такое. Моя программа правильная, но не показывает результат. Я думаю, что это из-за этих двух строк:

[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!

Ответ 1

Вот пример из 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>

Ответ 2

Множественные теги действий в одном теге фильтра-объекта также вызывают ту же ошибку.

Ответ 3

Как сказал Гусдор выше: "Множественные теги действий в одном теге фильтра-намерения также вызывают такую ​​же ошибку". (Дайте ему кредит! Я мог бы просто поцеловать Гусдора за это!)
Я не нашел никаких документов для этого факта! Я добавил новое (USB) действие и был умным, я сосредоточил его в одном и том же фильтре-намерении. И это сломало запуск. Как сказал Гусдор, один фильтр намерения, одно действие! По-видимому, каждое действие должно идти в своем собственном фильтре. Это должно выглядеть так...

<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! это сработало!

Ответ 4

У вас есть активность, которая была запущена при запуске приложения?

Это делается в файле 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>

Ответ 5

Проверьте ваш 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>

Ответ 6

Это означает, что вы не указали приложение Activity for Android для запуска по умолчанию, когда приложение открывается из панели запуска. Вы должны добавить в Манифест для Activity Activity Intent Filter, который вы хотели бы использовать по умолчанию при запуске приложения.

Подробнее читайте http://developer.android.com/guide/topics/intents/intents-filters.html#ccases.

Ответ 7

Я исправил проблему, добавив блок активности в тег приложения. Я создал проект с помощью мастера, я не знаю, почему в моем файле 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>

И я получаю желаемый результат на эмуляторе.

Ответ 8

Как уже отмечалось, эта ошибка, скорее всего, вызвана отсутствующим или неправильным intent-filter.

Я хотел бы добавить, что эта ошибка также появляется, если вы устанавливаете android:exported="false" в своей активности запуска (в манифесте).

Ответ 9

У меня была эта же проблема, и оказалось, что вместо тега//в теге xml у меня есть '\'. Он по-прежнему выдавал ту же ошибку, но только из-за проблемы с синтаксисом.

Ответ 10

Если вы используете стандартную среду разработки eclipse, предоставленную Google для разработки Android, вы можете установить флажок "Launcher Activity" при создании нового действия. Ниже вы найдете:

enter image description here

Ответ 11

В Eclipse, когда это можно сделать:

enter image description here

Но желательно внести соответствующие изменения в файл манифеста Android.

Ответ 12

Манифест чувствителен к регистру, поэтому, пожалуйста, сравните эти строки для любого несоответствия случая, особенно слова MAIN в:

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

Ответ 13

просто добавьте это в свой тег приложения в файл AndroidManifest.xml

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

а также отредактировать тег uses-sdk от android: targetSdkVersion = "16" до 17

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

Ответ 14

Вы пропустили определение элементов фильтра намерения в файле манифеста. Файл манифеста:

<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>

Добавьте и проверьте это правильно. Надеюсь, это поможет..

Ответ 15

Вы можете добавить запуск в действие в визуальный редактор манифеста eclipse:

Application Nodes section should look like this:

Ответ 16

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>

Ответ 17

Вы не включили фильтр запуска Launcher в действие, которое вы хотите отобразить первым, поэтому он не знает, какую активность следует запускать при запуске приложения, поскольку это говорит системе, включая включение фильтра фильтра запуска в manifest.xml