"Başlatıcı etkinliği bulunamadı!" Ne anlama geliyor?


82

Basit bir Android programı yazıyorum ve bunları hatasız alıyorum, ne olduklarını bilmiyorum. Programım doğru, ancak çıktı göstermiyor. Sanırım bu iki satırdan kaynaklanıyor:

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

Yanıtlar:


158

İşte AndroidManifest.xml'den bir örnek. Başlangıçta başlatmak istediğiniz aktivite için amaç filtresinde ANA ve BAŞLATICI'yı belirtmeniz gerekir.

<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
Bunlar her zaman aynen öyle görünecekler, uygulamanızdaki sınıflar değil, gerçekleşen eylemlerdir. Benzer şekilde, diğer eylemlerde bir Etkinlik ateşi yakabilirsiniz. örneğin <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

"Temelde" Android'in Aktivite ile ne yapacağına karar vermesine yardımcı olur. Belgelerin Niyet bölümüne bakın
dbryson

2
Bu niteliğin değerini android:name="ExampleActivity"uygun aktivite ana sınıfına değiştirmeyi unutmamak .
Omar

51

Tek bir amaç filtresi etiketindeki birden çok işlem etiketi de aynı hataya neden olur.


Olumsuz oy aldım. Bu semptomun giderilip giderilmediğini herkes doğrulayabilir mi? Bana hep bir böcek gibi geldi.
Gusdor

24

Gusdor'un yukarıda dediği gibi, "Tek bir amaç filtresi etiketindeki birden çok eylem etiketi de aynı hataya neden olur." (Ona övgü verin! Bunun için Gusdor'u öpebilirim!)
Bu gerçek için herhangi bir belge bulamadım! Yeni bir (USB) eylem ekledim ve zekice davranarak onu aynı amaç filtresine koydum. Ve lansmanı bozdu. Gusdor'un dediği gibi, tek amaç filtresi, tek eylem! Görünüşe göre her eylem kendi amaç filtresine girmelidir.
Böyle görünmeli ...

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

Bunu yaptığımda WAZOO! işe yaradı!


Bunu arıyordum
Vijay

17

Uygulama başladığında başlatılan etkinliği ayarlayan bir etkinlik var mı?

Bu, Manifest.xml dosyanızda aşağıdaki gibi yapılır:

    <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 dosyanızı kontrol edin. LAUNCHER kategorisinin orada olduğundan emin olun.

<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

Uygulama etiketine etkinlik bloğu ekleyerek sorunu çözdüm. Projeyi sihirbaz kullanarak oluşturdum, AdroidManifest.xml dosyamın neden uygulama bloğu içermediğini bilmiyorum? Uygulama bloğunu ekledim:

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

Ve emülatörde istenen çıktıyı alıyorum.


5

Belirtildiği gibi, bu hata muhtemelen eksik veya yanlıştan kaynaklanmaktadır intent-filter.

android:exported="false"Başlatıcı etkinliğinizi (bildirimde) ayarladığınızda da bu hatanın ortaya çıktığını eklemek isterim .


Bu gerçekten benim sorunumdu.
bvd

2

Aynı sorunu yaşadım ve xml etiketinde '/' yerine '\' olduğu ortaya çıktı. Yine de aynı hatayı verdi, ancak sadece bir sözdizimi probleminden dolayı.


2

Android geliştirme için google tarafından sağlanan standart tutulma IDE'sini kullanıyorsanız, yeni bir Etkinlik oluştururken "Başlatıcı Etkinliği" onay kutusunu işaretleyebilirsiniz. Lütfen altta bulun:

görüntü açıklamasını buraya girin


2

Eclipse'de bunu ne zaman yapabilirsiniz:

görüntü açıklamasını buraya girin

Ancak, ilgili değişiklikleri Android bildirim dosyasında yapmanız tercih edilir.


1

bunu AndroidManifest.xml dosyasındaki uygulama etiketinize eklemeniz yeterlidir

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

ve ayrıca android'deki uses-sdk etiketini düzenleyin: targetSdkVersion = "16" - 17

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

1

Manifest dosyanızdaki amaç filtresi öğelerini belirtmeyi kaçırdınız. Bildirim dosyası:

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

Bunu doğru şekilde ekleyin ve kontrol edin. Umarım bu yardımcı olur ..


1

Manifest büyük / küçük harfe duyarlıdır, bu nedenle lütfen bu satırları herhangi bir büyük / küçük harf uyuşmazlığı için, özellikle de içindeki kelime MAINiçin karşılaştırın:

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


1

MAIN, uygulama başladığında kullanılacak ilk aktiviteye karar verecektir. Başlatıcı, uygulama kontrol paneline uygulama ekleyecektir.

Zaten onlara sahipseniz ve hala hata mesajı alıyorsanız, ancak bunun nedeni bir amaç filtresinde birden fazla kategori veya eylem kullanıyor olmanız olabilir. Bir amaç filtresinde böyle yalnızca bir etiket olabilir. Başka bir kategori eklemek için, aşağıdaki gibi başka bir amaç filtresine koyun

        <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

İlk olarak görünmesini istediğiniz etkinliğe Başlatıcı amaç filtresini eklemediniz, bu nedenle uygulama başladığında hangi etkinliğin başlatılacağını bilemez, bunun için sisteme manifest.xml'de başlatıcı filtresi amacını ekleyerek bildirin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.