Varsayılan Etkinlik Android Studio'da bulunamadı


93

Android Studio 0.2.8'e yeni yükselttim ve çalıştırma yapılandırmalarını düzenlemeye çalıştığımda "Varsayılan Etkinlik bulunamadı" şeklinde bir hata alıyorum.

Android Studio'yu başlattığımda şu hatayı alıyorum "Yalnızca olay gönderme iş parçacığından erişime izin veriliyor"

Kullandığım etkinlik bir parça etkinliktir.

Şimdiye kadar önbellekleri / yeniden başlatmayı yeniden oluşturmayı ve geçersiz kılmayı denedim. Her ikisi de işe yaramadı.

Lütfen sorunu çözmek için ne yapabileceğimi bana bildirin.


Yanıtlar:


45

Android Studio'da projeye sağ tıklayın ve Modül Ayarlarını Aç'ı seçin . Ardından modülünüzdeki Kaynaklar sekmesine gidin , src klasörünü bulun , sağ tıklayın ve Kaynaklar (mavi renk) olarak işaretleyin .

DÜZENLEME: Android Studio'nun sonraki sürümlerinde kaynaklar sekmesi yoktur, ancak bunun yerine build.gradle dosyasını düzenleyebilirsiniz : https://stackoverflow.com/a/22028681/1101730 (Josh yorumu için teşekkürler)


27
Bunu 0.6.1'de nasıl yapabilirim ? Kaynaklar sekmesi görmüyorum .
lschlessinger

7
ben de değil. Özellikleri, İmzalama, Tatlar, Yapı Türleri ve Bağımlılıklar vardır
Genç mayhe

4
"Kaynaklar" sekmem yoktu, bu yüzden onun yerine build.gradle dosyasını düzenledim: stackoverflow.com/a/22028681
Josh

2
Mükemmel! Yardımınız için teşekkürler @Micer. Çocuklar, IntelliJ projenizde 'F4'e basın, ardından üç sekmeniz var (Kaynaklar, Yollar, Bağımlılıklar),' Kaynaklar 'sekmesine gidin ve' src 'klasörünün (ağaç yapısında) mavi olup olmadığını kontrol edin. Kaynak klasörü Proje Yapısına dahil etmek için 'Alt + S' tuşlarına basmazsanız.
Ryan Amaral

1
@IgorGanapolsky Haklısınız, Android Studio'nun sonraki sürümlerinde Kaynaklar sekmesi kaldırılmış gibi görünüyor. Josh'un cevabını kontrol edin.
Micer

51

ACTION_MAINAna faaliyetinize niyet filtresi eklediniz mi? Bunu eklemezseniz, android ana etkinlik olarak hangi etkinliği başlatacağını bilemez.

ör .:

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

1
Evet, bu yapıldı. OpenJDK yerine oracle JDK kullanarak "yalnızca olay gönderme iş parçacığından erişime izin veriliyor" ayarını düzelttim. Varsayılan etkinlik eksik olsa da devam ediyor
Vipassana Vijayarangan

5
Ayrıca, "com.package.name.MyActivity"tüm <intent-filter>öğe <activity>ad alanınızdaki MyActivity'nize karşılık gelen bir öğenin içindeyse ad çıkarılabilir.
Xavi Montero

Hah, ben adında bir sınıf adını Filteradlı tüm değişkenleri içeren filterve görünüşe Android Studio dahil etmeye karar vermiştir AndroidManifest.xmlve <intent-*filter*>. Bu cevap benim iki kez kontrol AndroidManifest.xmletmemi sağladı ve hatayı bulmama yardımcı oldu =)
Stephan Henningsen

Bu nerede belgeleniyor?
Bulamıyorum

32

Bir projeyi Android Studio'ya aktarırken aynı sorunu yaşadım, muhtemelen projenin şu anda bilgisayarımda kurulu olduğundan daha eski bir Android Studio sürümünde geliştirilmiş olmasından kaynaklanıyordu.

Çözülen şey basitçe seçmekti:

File -> Invalidate Caches / Restart...

ve sonra seçin Invalidate and Restart.


1
Çok teşekkür ederim @ syntagma, rehberliğiniz saatlerce süren çabadan sonra sorunumu çözdü.
MMG

16

Sekmeniz yoksa ve boş bir etkinlikle başladıysanız, bunu deneyin. Aşağıda örnek bir kod örneği verilmiştir:

<application android:label="@string/app_name">

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

</application>

Şimdi AndroidManifest.xml dosyanıza gidin. Daha sonra bu koddan amaç filtresini kopyalayın. Bildirim dosyanıza gerçekten iyi bakın ve amaç filtresini yukarıdaki kodda olduğu yere yapıştırın. (bildirimin .yourActivityName> kısmından sonra.) Umarım bu yardımcı olmuştur.


13

Çalıştırma yapılandırmalarını çalıştırdıktan sonra bile düzenlemeye çalıştığınızda hala "Varsayılan Etkinlik bulunamadı" hatası alıyorsanız:

Önbelleği geçersiz kılın ve yeniden başlatın .

Ardından Ayarlar / Tercihler klasörünü silmeyi deneyin:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

veya Mac'te:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

Paketlerinizi yeniden adlandırdıysanız veya sürüm kontrolünüzden şubeleri değiştirdiyseniz, bazen Android Studio tüm dosyaları tanımaz ve işleri karıştırır. Benim için işe yarayan tek çözüm AS'yi kapatmak, ardından silmek .AndroidStudioXY (burada XY sürüm numaranızdır) @ Phileo99'un işaret ettiği.
Zbarcea Christian

1
Hayatımı kurtardın! Sadece şunu yapın / <USER_HOME_DIR> /. AndroidStudioPreview3.2
nadafafif

rica ederim @nadafafif! size yardımcı olduysa lütfen cevabımı destekleyin.
Phileo99

@ Phileo99 Zaten yaptım. Bunu yapmaktan kendimi alıkoyamadım. :) Şerefe. Bu şekilde yardım etmeye devam edin.
nadafafif

Bu yardımcı oldu, ancak birçok şey indireceğinizi unutmayın. İndirmek yaklaşık 15 dakika sürer
Valgaal

10

"Modül Ayarlarını Aç" ı tıkladığımda, "Kaynak" sekmesi yoktu , sanırım bu, Android Studio'nun daha yeni sürümleri için kaldırıldı (0.8.14'teyim). Bu yüzden bunun yerine bunu yapmak zorunda kaldım:

Bu satırları bloğun build.gradleiçindeki dosyaya ekleyin android { ... }:

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

Dosyayı düzenledikten sonra Araçlar> Android> Projeyi Gradle Dosyaları ile Eşitle'yi tıklayın .

Bu yanıta ve bu yoruma kredi verin .


9

Benim için hile yaptı. Gönderen Run -> Düzen Yapılandırma .

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


Uygulamanın artık Samsung Galaxy S5 Neo ve Samsung Galaxy S6'daki mevcut uygulamalar listesinde gösterilmemesine neden olduğu için bu çözüme karşı bir tavsiyede bulunacağım.
Teun Kooijman

3

Sorunum, bazen ortaya çıkan ek bir hatadan kaynaklandı.

Manifest Merger failed with multiple errors in Android Studio

Nihayetinde sorunuma neden olan şey, birden çok manifesto (bir hata ayıklama Manifest'i ve yeni içe aktardığım yeni modülde bir manifesto) olması ve bu nedenle doğru şekilde birleştirilmemesiydi. Bu yanıtı gördükten sonra , birleştirilmiş bildirimi analiz edip sorunun nedenini bulup düzeltebildim.


2

bu bana oldu çünkü manifestteki yolları büyük harfle yazdım. değişti:

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

-e

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

ve düzeltildi


Günümü kurtardın! Teşekkürler
Siva Kumar

2

Bugün aynı sorunla karşılaştım ve cevapları burada inceliyordum.

Benim için fark, dün iyi çalışmasıydı, bu yüzden gerçekten bir yapılandırma sorunu olamayacağını düşündüm, ne yapılandırma ne de Android Studio'nun Sürümü değişti.

Neyse ki, diğer cevaplardan herhangi birini denemeden önce Android Studio'nun yeniden başlatılmasını denedim ve neyse ki bu sorunu çözdü.

Bu nedenle, bununla karşılaşan tüm insanlar için: denenecek ilk şey Android Studio'yu yeniden başlatmaktır ve yalnızca bu sorunu çözmezse buradaki diğer yanıtları deneyin.


2

Aynı hatayı Android Studio 1.5.1'de de yaşadım. ve sorunun kaynağını buldum. Nedenin bir insan hatası mı yoksa IDE'nin davranışındaki garip bir aksaklık mı olduğundan emin değilim, ancak bu konuyla ilgili mevcut StackOverflow sorularının hiçbiri bununla ilgili bir şey göstermedi, bu yüzden yine de bir cevap olarak gönderdim.

Benim için, ya ekip üyelerimden biri ya da IDE'nin kendisi, başlatıcı etkinliklerinin manifestosunu değiştirerek şöyle görünmesine neden oldu:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

Aslında şöyle görünmesi gerekir:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

Bu yüzden lütfen manifestteki başlatıcı etkinliğinizin formatını iki, üç, dört kez kontrol edin ve kendinize biraz zaman kazandırabilirsiniz.

Bu yardımcı olur umarım.

DÜZENLEME: İnsanlara, modülünüzün yapılandırma seçenekleri içinden bir başlatıcı etkinliğini manuel olarak seçmeyi öneren yanıtlarla gitmemelerini şiddetle tavsiye ederim, çünkü bu, uygulamanın artık hem Samsung Galaxy S5'te yüklü uygulamalar listesinde gösterilmemesine neden oldu. Neo ve Samsung Galaxy S6 (en azından benim için).


2

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

App -> Yapılandırmaları Düzenle'ye basın,
ardından "Hiçbir Şey" seçeneğinde Başlat'daki değeri değiştirin


1

Lütfen manifestte paket adının ana etkinliğinizle aynı olduğundan emin olun


1
  1. Android Studio'da Proje perspektifine geçin (Android perspektifine değil).

  2. Projenizin gradle eklentisinin varsayılan yapısını takip ettiğinden emin olun (yani project_dir / app / src / main / java ... )

  3. Gördüğünüz tüm yapı klasörlerini ve alt klasörlerini silin .

  4. Araç çubuğunda Oluştur -> Projeyi Temizle'yi , ardından Oluştur -> Projeyi Yeniden Oluştur'u tıklayın .

  5. Projeyi çalıştırmayı deneyin.


1

"Yapılandırmaları Düzenle" menüsüne giderek (üç kez "Değiştir" e dokunun, "Yapılandırmaları Düzenle" yazın) ve ardından Başlatma Seçenekleri> Başlat ayarını "Hiçbir Şey" olarak değiştirerek Android Studio'nun şikayet etmemesini sağlayabilirsiniz.

Herhangi bir karışıklığı önlemek için muhtemelen talimatlar içeren genel bir aktivite ekleyeceğim.


Bu benim zamanımı kurtardı
Sayali

1

Benim durumumda, .idea klasörünü projeden (Project / .ida) kaldırdığımda ve Android Studio'yu tekrar açtığımda işe yaradı.


.İdea klasörünü kaldırmak benim durumumda yardımcı oldu, Teşekkürler! Açıklık getirmek için ".iml" uzantılı tüm dosyalar .idea klasörünün içindeydi. Lütfen yalnızca .iml dosyalarını KALDIRMAYIN çünkü bu başka hatalara neden olabilir!
Cordis Audax Agrinova

0
  1. Projeye sağ tıklayın ve Modül Ayarlarını Aç'ı seçin.
  2. Modülünüzdeki Kaynaklar sekmesine gidin.
  3. Src klasörünüzü bulun.
  4. Sağ tıklayın ve Kaynaklar olarak işaretleyin.

Bu benim durumumdaki hatayı çözdü.


0

Örneğin com.dir.sample dizinlerinin adını (sınıf yapısı) değiştirdiyseniz, com.dir.sample1 olarak değiştirdiyseniz, bundan sonra com.dir.sample paketini com.dir.sample1 olarak değiştirmeyi unutmayın.


0

"Workspace.xml" dosyasını değiştirin (aramak için Ctrl + Shft + R tuşlarına basın)

  1. Etkinlik adını paket adıyla değiştirin

  2. "Name =" USE_COMMAND_LINE "değerini value =" false "olarak değiştirdiğinizden emin olun

  3. Projeyi yeniden yükleyin

Bitti!


Ctrl + Shft + F, + R = yerine F = bul ile arama yapardım.
Shishdem

0

Benim gibi "Kaynaklar sekmesini" bulmakta zorlananlar için:

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

Burada "src" klasörünüzü mavi olarak işaretlemelisiniz (önce Farklı işaretle : Kaynak'a , ardından src klasörünüze tıklayın) ve gitmeniz iyi olur.


0

Atabileceğiniz iki adım vardır:

  1. Yapılandırmalara gidin ve başlatılacak faaliyetin adını girin
  2. Hala çalışmıyorsa Anında Çalıştırmayı Devre Dışı Bırak

0

Tüm çözümleri denedim ama hiç çalışmıyorum. android stüdyomda Anında çalıştırmayı devre dışı bırakmaya çalıştığımdan daha fazla.

Android Studio Ayarları veya Tercihler (MAC için) -> Oluşturma, Yürütme, Dağıtım -> Anında Çalıştırma seçeneğine gidin .

Anında çalıştırma işlevinin işaretini kaldırın ve ardından dosya menüsünden gradle dosyalarıyla projeyi senkronize et tıkladıktan sonra

şimdi yapınızı çalıştırın ...


Bu artık Android Studio 4.0+ için geçerli değil
Jorge E. Hernández

0

Bazı durumlarda, bazı categoryalanlara sahip bir modele sahip olabilirsiniz , eğer onu her yerde yeniden düzenlerseniz, onu manifest dosyasında yeniden düzenleyebilir ve sonra xml etiketi geçersiz hale gelir.


0

Bu tür durumlarda birçok olasılık meydana gelebilir (Varsayılan Etkinlik Bulunamadı) Tüm kodlar iyi ise, özellikle Manifest'te, sadece Önbelleği Geçersiz Kılmanız ve stüdyoyu yeniden başlatmanız yeterlidir,

Ancak bazen, sadece Ana aktivite için değil, aynı zamanda çocuk aktiviteleri tarafından da tetiklenerek, manifest üzerinde yinelenen aktivite bildiriminiz olduğunda meydana gelir.

Bu benimle oldu, Varsayılan etkinlik bulunamadı çünkü bildirimde yinelenen alt etkinliklerim var, silindikten sonra her şey yolunda


0

AndroidManifest.xmlDosyanızda yinelenen etiket olup olmadığını kontrol edin .


0

Bunu anladım. Etkinlik bildirimine yanlışlıkla son anahtar kelimeyi ekledim. Kaldırdıktan sonra her şey çalışıyor!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. Android Studio'da

  2. Yapılandırmayı düzenlemeye gidin.

  3. Uygulamayı seçin.

  4. öğle yemeği Aktivite yolunu seçin.

  5. uygulayın, tamam.

    Teşekkürler!!


-1

Varsayılan Etkinlik adı değişti (SplashActivity -> SplashActivity1 gibi) ve benim için çalış

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.