“Aktivitas Default Tidak Ditemukan” pada peningkatan Android Studio

463

Saya meningkatkan Ide IntelliJ dari 12.0.4 ke 12.10.

Sekarang semua modul di proyek Android saya memberikan kesalahan:

Kesalahan: Aktivitas Default Tidak Ditemukan

Saya kembali ke 12.0.4 dan semuanya bekerja kembali.

Ada ide? Saya pikir itu mungkin masalah dengan plugin yang hilang. Karena plugin tidak diinstal, plugin tidak dapat menemukan aktivitas default. Hal lain bisa jadi konfigurasi lokal, tapi saya ragu. Saya menghapus folder konfigurasi untuk memverifikasi dan itu tidak mengubah apa pun.

Saad Farooq
sumber
3
Sudahkah Anda melihat manifes? mungkin beralih versi menghapusnya atau sesuatu? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv
Tidak ... tapi saya berhasil dengan 12.0.4 tetapi mengimpor kembali proyek dari awal.
Saad Farooq
2
Manifestasikan kuncinya, mungkin kesalahan nama atau kelalaian, atau masalah namespace
slezica
Masalah nyata dalam semua tujuh modul proyek yang 12.0.4 berjalan dengan benar tetapi 12.10 tidak ??
Saad Farooq
Tidak, tetapi perubahan dalam namespace atau sesuatu tata letak proyek, misalnya, mungkin tidak sinkron dengan manifes
slezica

Jawaban:

889

Jika Anda melihat kesalahan itu terjadi setelah meningkatkan versi IntelliJ IDEA atau Android Studio, atau setelah Menghasilkan APK baru, Anda mungkin perlu menyegarkan cache IDE.

File -> Invalidate Caches / Restart...
Sky Kelsey
sumber
2
Anda juga dapat mencoba untuk melaporkan bug di sini: youtrack.jetbrains.com/issues/IDEA Saya menemukan mereka sangat baik dalam menindaklanjuti bug yang saya ajukan.
Sky Kelsey
Saya pikir ini dia ... Saya akan terus menyelidiki ... Saya tidak punya waktu untuk membuka direktori lagi sebagai proyek baru di setiap platform.
Saad Farooq
Saya mempunyai masalah yang sama. Dalam file manifes saya, saya juga mendapatkan kesalahan "Tidak dapat menyelesaikan simbol 'MainActivity'". Saya mengimpor proyek dari Eclipse.
Roberto
28
Ini bekerja untuk saya di Android Studio, tetapi setelah restart saya juga harus melakukan Tools -> Android -> Sync Project with Gradle Files.
vaughandroid
304

Saya tidak dapat mengomentari mengapa pemutakhiran IntelliJ dapat menyebabkan masalah ini karena saya tidak menggunakannya.

Namun, kesalahan itu: "Aktivitas Default Tidak Ditemukan" tampaknya memberi tahu Anda bahwa Anda tidak memiliki aktivitas yang dideklarasikan di AndroidManifest.xml yang ditandai sebagai aktivitas utama, yang akan diluncurkan ketika aplikasi dimulai.

Anda harus memiliki setidaknya satu aktivitas yang terlihat seperti ini:

<activity
        android:name="com.your.package.name.YourActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Jika Anda tidak memiliki setidaknya satu aktivitas dengan filter maksud seperti itu, kemungkinan besar Anda akan melihat pesan kesalahan yang telah Anda sertakan di sini.

Anda harus menambahkan filter maksud ke Aktivitas yang ingin Anda buka saat Anda memulai aplikasi, dan itu akan memperbaiki masalah Anda.

mattgmg1990
sumber
semut membangunnya dengan baik dan begitu juga IntelliJ 12.0.4
Saad Farooq
Saya memulai aplikasi saya di Eclipse, ya saya memiliki aktivitas default. Saya mengimpor aplikasi saya ke Android studio, itu baik-baik saja sampai suatu hari saya menambahkan manajer pemberitahuan dan hal-hal, saat itulah saya mengalami kesalahan ini. Saya melakukan File-> Validasi cach-> Restart dan itu memperbaikinya. Tetapi kesalahan itu tidak disebabkan oleh kurangnya aktivitas default seperti yang Anda sebutkan.
The_Martian
Bekerja untuk saya juga! TETAPI CATATAN: tolong tulis "android.intent.xxx" dalam huruf kecil - kesalahan saya adalah bahwa penyelesaian Android Studio menyarankan huruf besar (ini membutuhkan waktu satu jam) :-(
Philipp P
22
Bagi mereka yang relatif baru untuk Android dan Anda baru saja mengacaukan proyek Android Studio Anda, ini adalah jawaban yang Anda cari. Jawaban yang diterima adalah ketika upgrade telah mengacaukan segalanya untuk Anda.
Tom Kidd
3
Saya telah mengatur ini dan proyek saya sudah berjalan berkali-kali dan tiba-tiba salah. Saya tidak tahu ada yang salah. Mungkin, itu berpotensi bug AS.
Licat Julius
81

Aplikasi Anda memiliki aktivitas peluncuran default?

mungkin ini kesalahan Anda

masukkan deskripsi gambar di sini

Langkah 1 : Pilih Edit Konfigurasi

masukkan deskripsi gambar di sini

Langkah 2 : perhatikan peringatan ini: Aktivitas Default tidak ditemukan masukkan deskripsi gambar di sini

Langkah 3 : pilih aktivitas default masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Langkah 3 : Simpan perubahan Anda dan selesaikan

masukkan deskripsi gambar di sini

Semoga berhasil

masukkan deskripsi gambar di sini

David Hackro
sumber
Jawaban yang bagus! Ini yang membantu jika tidak ada aktivitas di aplikasi. (hanya layanan). Anda perlu mengubah "aktivitas" menjadi "jangan memulai aktivitas"
Udi Reshef
Ini adalah satu-satunya jawaban yang berfungsi untuk aplikasi tanpa aktivitas. Terima kasih.
Sephiron
Ini berhasil untuk saya! Saya sebenarnya memiliki Aktivitas Default di Manifest, tetapi karena beberapa alasan Android Studio tidak menemukannya.
ocramot
2
Saya mengikuti langkah-langkah yang disebutkan di atas, tetapi sekarang dikatakan "Aktivitas 'MainActivity' tidak dideklarasikan di AndroidManifest.xml" meskipun MainActivity ada di sana
Jauh
Jawaban ini mudah diikuti. Juga komentar dari @Udi Reshef terima kasih
Bishwas Mishra
66

Cara yang benar untuk melakukan ini adalah dengan menambahkan berikut ini ke file Manifest:

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

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

Ini harus dimasukkan antara:

<application> </application>

Tidak perlu dalam cache yang tidak valid.

Yuriy
sumber
Bekerja untuk saya juga! TETAPI CATATAN: tolong tulis "android.intent.xxx" dalam huruf kecil - kesalahan saya adalah bahwa penyelesaian Android Studio menyarankan huruf besar (ini membutuhkan waktu satu jam) :-(
Philipp P
Poin Bagus: "Ini harus dimasukkan antara: <aplikasi> </aplikasi>". Ini masalah saya. Terima kasih banyak.
Dennis Mathew
Berhati-hatilah saat refactoring kode Anda. dalam kasus saya sendiri, saya keliru refactored 'kategori' sebagai 'ponsel' sehingga, android.intent.category diubah menjadi android.intent.phone.
Kenny Dabiri
Saya menggunakan panduan pembuatan proyek Android Studio dan masih harus melakukan ini secara manual. Apakah saya salah karena menganggap itu bug?
pdoherty926
45

Jika Anda bekerja pada aplikasi widget, solusi ini akan bekerja untuk Anda:

  1. Pergi ke Edit Configuration
  2. Setel Launch Optionkenothing
Kishan Vasoya
sumber
1
kamu Menakjubkan!
Rahul Singh
1
hanya ini yang bekerja untuk saya !!
Malith Ileperuma
44

Coba klik kanan pada proyek dan pilih Open Module Settings . Lalu buka tab Sumber di modul Anda, cari folder src , klik kanan padanya dan tandai sebagai Sumber (warna biru).

EDIT: Tidak ada tab sumber dalam versi Android Studio yang lebih baru, tetapi Anda dapat mengedit file build.gradle sebagai gantinya: https://stackoverflow.com/a/22028681/1101730

Micer
sumber
Ini membantu saya keluar, saya menyadari intellij menjatuhkan banyak file sumber dari src di tab Sumber. Saya memindahkan paket saya keluar dari proyek dan kembali. Itu memecahkan masalah saya
Jesse Black
2
Saya melakukan hal yang sama, tetapi saya mengklik kanan folder src dan pergi ke "Tandai Direktori Sebagai ..." dan kemudian "Sumber Root." - Android Studio 0.8.6
elliptic1
1
Bekerja seperti jimat, Menghapus root saat ini, dan menambahkan folder induk src dan gen lagi
Udi Oshi
1
cara cepat untuk mengakses pengaturan modul adalah dengan mengklik navigator proyek dan tekan F4
whyoz
3
ini tidak digunakan lagi karena tidak ada lagi tab Sumber pada Pengaturan Modul Terbuka .
Buddy
23

Di Android Studio di bawah Konfigurasi Run / Debug -> Aplikasi Android -> Umum -> Aktivitas -> pilih opsi "Jangan luncurkan Aktivitas".

TouchBoarder
sumber
3
Ini adalah solusi ketika proyek adalah layanan, atau tidak memiliki aktivitas default karena alasan lain.
Aharon Manne
2
Di Android Studio 2.2.3; Konfigurasi Run / Debug -> Aplikasi Android -> myApp -> Umum -> Opsi Peluncuran -> Peluncuran: Tidak Ada
liteflier
21

Tidak ada yang membantu saya di atas. Setelah beberapa waktu saya menemukan bahwa IDEA mengubah nama tindakan menjadi huruf besar. Suka:

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

Setelah kembali ke normal, IDEA mengenali aktivitas default:

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

Pertama-tama pastikan bahwa Anda telah memasukkan aktivitas default dalam manifes.

Contoh:

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

Jika Anda telah mencoba segalanya dan sepertinya tidak ada yang berhasil

  • Hapus cache dari% Home Anda% \. Gradle \ cache dan sinkronkan proyek lagi.

Atau periksa jawaban ini

https://stackoverflow.com/a/53476487/5507705

Salman
sumber
1
Android Studio 3.2.1: File -> Sync Project dengan Gradle Files ::: Harus melakukan ini setelah membuat cache tidak valid dan memulai kembali sebelum masalah hilang.
Kreebog
1
Ini berhasil untuk saya. Apa yang saya percaya menyebabkan ini memindahkan aktivitas utama saya ke direktori yang berbeda, hilir dari root.
Shn_Android_Dev
11

Metode ini berfungsi untuk saya. Klik ikon aplikasi lalu pilih edit konfigurasi. Dalam konfigurasi-edit pilih aktivitas yang ditentukan daripada aktivitas default. Kemudian berikan jalur kegiatan di bawah ini.

Klik pada aplikasi dan edit konfigurasi

Pilih aktivitas dan direktori yang ditentukan

Pada akhirnya sinkronkan dengan file gradle.

Durgaprasad Nagarkatte
sumber
11

Dalam kasus saya File -> Invalidate Caches / Restart...tidak membantu

Semuanya baik-baik saja dengan proyek saya dan tentu saja saya memiliki filter maksud berikutnya untuk aktivitas saya

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

Apa yang benar-benar membantu saya adalah menghapus folder cache Android / Gradle (mereka dapat tumbuh hingga 10-30 GB)

Buka C:\Users\YOUR_USER_WINDOWS_NAMEdan hapus folder berikutnya

  • .android
  • .AndroidStudio3.2
  • .gradle

(Anda dapat menyimpan beberapa konfigurasi Android dari .AndroidStudio3.2sebelum menghapusnya jika Anda menginginkannya)

Anda dapat membuat file bat CLEAR_CACHE.cmdseperti ini untuk menghapus folder tanpa Recycle Bin

rmdir /S /Q .android
rmdir /S /Q .AndroidStudio3.2
rmdir /S /Q .gradle

ini akan bekerja lebih cepat dan Anda tidak harus menghapusnya juga dari Recycle Bin

ps dimasukkan CLEAR_CACHE.cmdke dalamC:\Users\YOUR_USER_WINDOWS_NAME

itu juga ide yang baik untuk menghapus folder Android Studio dan mengunduhnya lagi

pengguna924
sumber
8

Saya mengubah Intent-filter saya menjadi

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

Cukup tambahkan opsi DEFAULT juga. Saya menggunakan perpustakaan Process Phoenix dan itu mendorong saya untuk mendefinisikan maksud default. Tambahan ini memecahkan masalah saya.

Rorschach
sumber
7

Saya mendapat kesalahan ini.

Dan menemukan bahwa dalam file manifes dalam aktivitas launcher saya tidak menaruh actiondan categorymenyaring maksud.

Salah satu:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>

Yang benar:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>
mehmoodnisar125
sumber
7

Keluar dari Android Studio.

Pergi ke jalan C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Hapus folder / cache dan / folder tmp

Abhishek Garg
sumber
6

@TouchBoarder hampir memilikinya. Meskipun memilih "Jangan memulai Aktivitas" tidak menghasilkan apa-apa.

Di Android Studio di bawah Konfigurasi Run / Debug -> Aplikasi Android -> Umum -> Aktivitas -> pilih opsi "Luncurkan:"

Pilih Aktivitas Anda. Ini tidak benar-benar memperbaiki perilaku yang dimaksud tetapi menimpanya dengan benar.

Edit konfigurasi jalankan / debug dan tentukan aktivitas peluncuran

John
sumber
4

Jika aplikasi Anda tidak memiliki Kegiatan (hanya layanan misalnya), ubah opsi jalankan / debug konfigurasi 'Luncurkan' menjadi Tidak Ada.

hitam
sumber
4

Saya menemukan ini di kode saya:

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

Jika Anda melihat dengan sangat hati-hati, itu seharusnya <activity android:name=".MainActivity">.

Rupanya, saya refactored "aktivitas" di suatu tempat, dan itu berganti nama di AndroidManifest juga.

Muz
sumber
dalam kasus saya penggantian nama FilterClasses menyebabkan tag <intent-filterList> :)
Emanuel
2
Berhati-hatilah saat refactoring kode Anda. dalam kasus saya sendiri, saya keliru refactored 'kategori' sebagai 'ponsel' sehingga, android.intent.category diubah menjadi android.intent.phone.
Kenny Dabiri
4

Saya menemukan blog ini yang benar-benar memperbaiki masalah ini dalam kasus saya. Ternyata Anda harus menambahkan semacam niat:

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

Itu benar-benar mudah. Referensi:

https://www.aboutonline.info/2018/08/error-running-app-default-activity-not-found-on-android-with-kotlin.html

Situs web itu Menyenangkan
sumber
4

Semua jawaban di atas tidak membantu saya. Coba hapus ini

<?xml version="1.0" encoding="utf-8"?>

di AndroidManifest Anda. Kemudian:

File > Sync Project with Gradle Files
Vladislaw Vivaldy
sumber
Saya tahu itu hanya Syncing Project With Gradle Filesberfungsi sebagai anggur. Ngomong-ngomong, kesalahan saya terjadi entah dari mana.
homerun
4

Dalam kasus saya, saya refactored variabel anggota yang bernama "aktivitas", saya menamainya menjadi "konteks" ... Saya menemukan bahwa refactor dibuat ke tag aktivitas dalam manifes, dan saya malah menemukan mereka tag konteks ... ini benar-benar bodoh dari Android Studio!

Ahmed Adel Ismail
sumber
2
ini adalah bug dari studio Android, Anda benar @tere bentikh
mayank_droid
3

Saya memiliki masalah yang sama di Android Studio 3.3 Canary 3. Proyek dari versi stabil Android Studio 3.0 bekerja pertama kali dengan benar, daripada setelah beberapa pembersihan / pembangunan kembali itu mulai menunjukkan tidak ada kesalahan Aktivitas Default. Saya mencoba menginstal ulang versi alpha ini dari Android Studio: kesalahan lagi. Tapi kemudian memulainya di Android stabil lama, dan menggunakan apk install, dan apk ini berfungsi dengan benar.

Selain itu proyek saya dibuat dengan Aplikasi Instan (basis, fitur, instan, subdirektori aplikasi). Saya pikir Studio Android ini memiliki beberapa masalah dengan file Manifest.xml dipisahkan ke dalam beberapa direktori ini.

Jadi saya telah mengubah pengaturan ke ini: masukkan deskripsi gambar di sini

Michał Ziobro
sumber
3

Sejak Android Studio 3.5 or 3.6saya mulai mendapatkan Default Activity not founddan saya bosan Invalidating Caches & Restart, membangun kembali proyek dll.

Ternyata, cara saya menangani multi-modul dan manifes adalah salah. Saya memiliki Manifestasi Aktivitas default dalam modul perpustakaan saja, tetapi seharusnya sudah ada di kedua modul aplikasi.

Asumsi librarymodule appmodule1 appmodule2

  1. Hapus HomeActivitydari librarymoduleManifestasikan apa pun.
  2. Menambahkan:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. Untuk appmodule1memanifestasikan applicationtag di dalam , saya menambahkan:
        <activity
            android:name="com.app.name.AppModuleActivity1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  1. Sama appmodule2tetapi ubah 2 untuk 1 dalam penamaan.
Przemo
sumber
2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

Ini bekerja untuk saya. Bangun kembali proyek untuk memastikan bahwa tidak ada kesalahan dalam proyek. Lalu kita bisa membatalkan cache.

Artyom
sumber
2

Kesalahan: Aktivitas Default Tidak Ditemukan

Saya memecahkan cara ini
Jalankan >> Edit Konfigurasi >> Aplikasi Android >> Masukkan jalur kelas aktivitas default Anda di "Luncurkan" Kotak Edit.

Lokesh Tiwari
sumber
2

baru saja menghadapi kesalahan ini di android studio 2.1.2. diselesaikan dengan menambahkan MAIN / LAUNCHER intent-filter ke aktivitas default dalam manifes rasa , meskipun filter sudah dalam aktivitas default dalam manifes default. Bahkan dalam manifes gabungan, tetapi studio tidak dapat menemukannya sampai saya menggandakan filter di kedua manifes.

mjollneer
sumber
2

pengalaman saya: pastikan bahwa semua file java Anda telah diidentifikasi, jika IDEA tidak mengidentifikasi file java Anda, jadi dia tidak dapat memahami apa artinya "Aktivitas"

semoga berhasil :)

masukkan deskripsi gambar di sini

jianwei-x
sumber
2

Yah saya juga mendapatkan kesalahan ini,

Kesalahan: Aktivitas Default Tidak Ditemukan

baik dalam kasus saya itu untuk memakai modul .. Saya tidak perlu Kegiatan di sana jadi apa yang saya lakukan adalah sederhana

  1. pergi ke edit configuaration -> wear-> Launch Options-> Launch-> Nothing.
  2. Terapkan perubahan. Klik OK.
  3. Hapus kode yang ada untuk aktivitas default dari file manifes Anda.

Catatan: Jangan lupa Bersihkan File Proyek dan Sinkronkan Gradle.

PN10
sumber
2

Edit androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.java2">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivityName">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>
Tasdemir
sumber
dapatkah Anda mengembangkan jawaban ini? Hanya satu blok kode tidak terlalu membantu
Azsgy
2

Terkadang kesalahan ini karena kelakuan buruk studio android karena cache internal dan sistem pembangunan proyek. Bahkan kami telah menetapkan semuanya sempurna untuk aktivitas default. Untuk masalah seperti itu, saya menemukan solusi dan itu berfungsi untuk saya.

Langkah 1. Android Studio ---> File -> Cache tidak valid dan menutup android studio.

Langkah 2. Pergi ke jalur C: \ Users \ USER.AndroidStudio3.2 \ system

Langkah 3. Ganti nama dengan ekstensi .back dari folder di bawah ini Contoh: compiler harus menjadi compiler.back

  • penyusun
  • compiler-server
  • konversi
  • external-build_system
  • kerangka
  • gradle
  • resource_folder_cache

Langkah 4: Mulai studio Android dan buka proyek Anda.

Saya harap ini akan berhasil untuk Anda.

Abhay Bhusari
sumber
1
Ini adalah satu-satunya jawaban yang berfungsi untuk saya, tetapi selain proses yang dijelaskan di sini, Anda harus menghapus konten folder "sistem / cache" jika tidak, ia hanya bekerja pertama kali setelah Anda melakukan proses dan restart Android Studio, kemudian kembali terjadi sama, Aktivitas Default Tidak Ditemukan.
Gerrard
Satu-satunya opsi yang bekerja untuk saya. Itu terjadi setelah reset keras komputer, yang mungkin merusak beberapa file seperti yang Anda katakan. Pilihan lainnya adalah menginstal ulang android studio tetapi untungnya membersihkan folder yang Anda tentukan sudah cukup.
RJFares
2

Sinkronisasi Proyek Dengan File Gradle kadang-kadang berfungsi, Untuk memperbaiki masalah Keseluruhan ini Anda harus

  1. Keluar dari Android Studio
  2. Pergi ke USER -> AndroidStudio -> sistem -> cache
  3. Hapus folder itu
  4. Mulai Android Studio.

Ini akan mengindeks ulang file Anda dan itu akan berfungsi

Berkat kirtan403 dari pertanyaan serupa.

Home run
sumber