Що це означає "Діяльність запуску не знайдено!"


82

Я пишу просту програму для 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!

Відповіді:


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 вирішити, що робити з Activity. Див. Розділ "Наміри" документації
dbryson

2
Щоб не забути змінити значення цього атрибута android:name="ExampleActivity"до належного основного класу активності.
Омар,

51

Кілька тегів дій в одному тегу фільтра намірів також спричиняють ту саму помилку.


Я отримав голос проти. Хтось може підтвердити, чи цей симптом був виправлений? Мені це завжди здавалося помилкою.
Гусдор

24

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


Я шукав це
Віджай

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>

6

Це означає, що ви не вказали Activity для Android для запуску за замовчуванням, коли програма відкривається з панелі запуску. Вам потрібно додати фільтр намірів у Маніфест для діяльності, яку ви хочете виконувати за замовчуванням під час запуску програми.

Докладніше читайте на веб- сайті http://developer.android.com/guide/topics/intents/intents-filters.html#ccases .


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

Якщо ви використовуєте стандартну IDE eclipse, надану Google для розробки Android, ви можете встановити прапорець "Launcher Activity", створюючи нову 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>

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

Якщо у вас їх уже є, і ви все ще отримуєте повідомлення про помилку, але, можливо, через те, що ви можете використовувати більше, ніж категорію чи дію у фільтрі намірів. У фільтрі намірів може бути лише один такий тег. Щоб додати іншу категорію, помістіть її в інший фільтр намірів, як показано нижче

        <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 намір фільтра Launcher

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.