Android applications require a designated entry point – an Activity that’s launched when the application starts. The “Default Activity Not Found” error indicates that Android Studio can’t identify this starting point within your application’s configuration. This tutorial will guide you through the common causes of this error and how to resolve them, ensuring your app launches correctly.
Understanding the Error
The Android system relies on the AndroidManifest.xml
file to understand the structure and components of your app. Specifically, it searches for an Activity marked as the launcher activity – the one that should be presented to the user when they tap the app icon. When the system can’t find an activity with the correct configuration, it throws the "Default Activity Not Found" error.
Common Causes
Several scenarios can lead to this error:
- Missing Launcher Activity: You haven’t defined an Activity intended to be the primary entry point of your application.
- Incorrect
AndroidManifest.xml
Configuration: The launcher Activity isn’t properly configured in theAndroidManifest.xml
file with the necessary intent filters. - Build Configuration Issues: Incorrect or outdated build configurations can sometimes cause the IDE to misinterpret the launcher Activity.
- IDE Caching: Occasionally, the IDE’s cache can become outdated, leading to incorrect analysis of your project.
- Run/Debug Configuration: A misconfigured or missing run/debug configuration can also cause this issue.
Resolving the Error
Here’s a breakdown of the steps to fix the “Default Activity Not Found” error:
1. Verify Your AndroidManifest.xml
The most common cause is an incorrectly configured AndroidManifest.xml
. Ensure that you have an <activity>
tag defined for your main Activity with the following crucial elements:
<activity
android:name=".YourMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:name
: This attribute should point to the fully qualified name of your main Activity class (e.g.,.MainActivity
,.com.example.app.MainActivity
). The leading dot signifies a relative path within your package.<intent-filter>
: This section is essential. It tells Android that this Activity should handle theandroid.intent.action.MAIN
action, indicating it’s a primary entry point.<category android:name="android.intent.category.LAUNCHER" />
: This crucial category tells the Android system to include this Activity in the application launcher (the list of installed apps).
2. Check Your Build Configuration
Ensure your build configuration (usually build.gradle
files) doesn’t have any errors that might prevent the manifest from being processed correctly. Pay attention to the applicationId
and package names; they should be consistent throughout your project.
3. Invalidate Caches and Restart
Android Studio sometimes caches information that can become outdated. To resolve this:
- Go to File > Invalidate Caches / Restart…
- Choose Invalidate and Restart.
This clears the cache and restarts the IDE, forcing it to re-analyze your project.
4. Verify Run/Debug Configuration
If the error persists, check your run/debug configuration:
- Go to Run > Edit Configurations…
- Select your app’s configuration.
- Ensure the “Launch Options” are set correctly. In most cases, "Launch default Activity" should be selected. If it is not, select it.
- If you are developing a widget app, consider setting "Launch option" to "Nothing".
5. Clean and Rebuild Project
Sometimes, a simple clean and rebuild can fix issues caused by build artifacts:
- Go to Build > Clean Project.
- Go to Build > Rebuild Project.
Example Project Structure
A basic project might have the following structure:
app/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/myapp/MainActivity.java
│ │ └── res/
│ │ └── layout/activity_main.xml
│ └── AndroidManifest.xml
└── build.gradle
Make sure your MainActivity.java
exists and corresponds to the android:name
in your AndroidManifest.xml
.
Troubleshooting Tips
- Double-Check Package Names: Verify that the package name in your
AndroidManifest.xml
matches the package name defined in yourbuild.gradle
file. - Sync Project with Gradle Files: Android Studio will prompt you to sync project with Gradle files when you open a project. If not, manually trigger a sync (File > Sync Project with Gradle Files).
- Examine Logcat: If the app crashes at launch, check the Logcat output for any error messages that might provide clues about the issue.