I'm new to android and I have encounterded a problem.
The console said that "Could not identify launch activity: Default Activity not found".
I have add
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
in manifests.
And I have tried Invalidate caches/Restart,still not worked.
And the class file which contains the main activity turn green in android studio. I don't know what that means.
This is my manifests file.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme" >
<Activity android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
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>
</manifest>
The chooseAreaActivity is the one I want to use as launcher activity.
For main activity in your manifest you have to add this with category LAUNCHER (First Activity on launch app):
<activity
android:name=".MainActivity"
android:label="YourAppName"
android:theme="#style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
For other activity you have to change category to DEFAULT:
<activity
android:name=".OtherActivity"
android:theme="#style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="package.OtherActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Check this Activity and this Start Another Activity
So your code is:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme" >
<activity
android:name=".activity.ChooseAreaActivity"
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>
</manifest>
Although the question is kind of outdated, I would add the following to all the given answers:
For multi-module projects check carefully that you modify the Manifest corresponding to the Configuration you are trying to run.
Had the same problem and spent 20 minutes just to discover that I was trying to run wrong configuration (with an Application in ModulbeB, while thinking that I was running one from ModuleA).
And sometimes you are working on other module default runnable module changes so you have to change it.
Sometimes it is solved just restarting Android Studio
I had the "Default Activity not found" problem a couple of times and I could solved restarting my android Studio.
If you see that error occur after upgrading your IDEA, upgrading Android Studio version, or Generating a new APK, you may need to refresh the IDE's cache.
File -> Invalidate Caches / Restart...
In your manifest file there was wrong element name (Activity change to activity) declared
<Activity android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
android:label="#string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</Activity>
Change it to:
<activity android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
android:label="#string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
When I upgraded Android Studio to 2021.1.1.23 somehow my Run Configuration was switched from app to models, producing this error. Switching back to app resolved the issue for me.
i had these issues with my project:
Default activity not found
xml intellisense was not working
kotlin standard functions were not detecting
All my above issues were resolved by Deleting System cache of Android Studio 3.3 at the home path, and it's working nicely for me,,
Steps:
exit Android Studio
Go to path > C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system
Then you have a \caches folder, delete this caches folder
Now open Android Studio and load your project
Worked for me.. i wasted couple of hours resolving this issue and finally it got resolved in this way.
Exit your android studio IDE. Then locate the "caches" folder in .AndroidStudio3.2 folder.
Location
C:\Users\YOUR_USERNAME\.AndroidStudio3.2\system\caches
For example.
Let's assume say YOUR_USERNAME is called Admin.
C:\Users\Admin\.AndroidStudio3.2\system\caches
Delete the caches folder and start your android studio IDE.
I have tried solutions here and other questions
clean & rebuild & invalidate and restart
make sure that activity has LAUNCHER as category
delete Android cache folder
at End, activity tag was has <activity android:name="com.exmaple.todo.MainActivity" />
when i changed it to <activity android:name=".MainActivity" /> app worked.
I hope it help you if other solution not work.
If your activity is in a different module (e.g. ':library) und you forgot to specify the subproject in the dependencies{} scriptblock of your :app module,
the manifest of :library and therefore the activities it declares, are not imported.
dependencies {
api project (':library')
You may check whether all activities show up in your app-debug.apk by using the following Android Studio menu command:
->Build->Analyze APK->app-debug.apk
Now open the AndroidManifest.xml and check its activity declarations.
I got this error in android 12+ after changing launch activity adding intent-filter but not make it exported.
so not forget.
android:exported="true"
It is likely that the action is not in the manifest.
This is the fix
Attached is an image
My main activity was not declared in Android Manifest File. That's the reason which came that error. This error come because of a declaration problem of Android Manifest file. Please check it. :D
This happened to me aswell took me ages to figure out why, but a weird bug I spotted is that if you run the app with breakpoints in your code without debugging mode it will cause this error to happen.
Quick fix for now: Only use breakpoints for degbugging mode.
Check your duplicate initialize activity in your AndroidManifest.xml
Like bellow:
<activity android:name=".nim.qiaqia.lota.LotaProduct"/>
<activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>
<activity android:name=".nim.qiaqia.main.activity.RechargeListLotaActivity"/>
<activity android:name=".nim.qiaqia.lota.MiningCoinLota"/>
<activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>
that can causes ""Default Activity not found" also. So, remove it and see. its works! :)
In my case android manifest was correct. I tried to invalidate Caches and restart but not worked. Then Rebuild project and it also did not work.
Then I realized that last night I added a new library to build Gradle, it was this:
implementation 'com.yalantis:eqwaves:1.0.1' And after removing this everything worked fine.
TIP: "Always have a track of things you do in your project, otherwise you will end up wasting your time"
If you only enabled building the app via app bundle, then this error might also occure when you try installing it as a default APK. Change the deployment option to APK from App Bundle and you are good to go.
there maybe duplicate of this but I can't find any solution working for me.
I have downloaded latest Eclipse Juno from developer.android.com day before yesterday and it seems to act weirdly. I am trying to run "Hello World" but it is not creating default Activity in Manifest file.
Then I am also getting this error :
Unable to write Jarlist cache file
workspace\appcompat_v7\bin\jarlist.cacheworkspace\appcompat_v7\bin\jarlist.cache
Can someone please suggest
Add this code in your Manifest.
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
How can I update the project name in Eclipse?
I have changed the project name by using "refactor" and "rename", but when I install the .apk in my device, it still shows the old project name.
How can I fix it and what is the problem?
Project name got nothing to application name. And there's no really anything like one application name on Android, but the label of Activity (one or more) user can access from his launcher. This is declared in AndroidManifest with android:label for every Activity with proper intent-filter.
<activity
android:name=".StartActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
See docs.
my error is
E/AndroidRuntime(11101): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.hellolinear/java.text.Normalizer$Form};
have you declared this activity in your `AndroidManifest.xml`?
but in my manifest code is:
<activity android:name=".Form"
android:label="#string/app_name">
<intent-filter/>
</activity>
can anyone help me?
If non of above works, then
uninstall app from your device
restart eclipse( if you are using it, otherwise other IDE)
clean your project
Check whether the activity is in the root package. Otherwise mention the package path while declaring in manifest file.
<activity
android:name="com.example.smstracking.MainActivity"
>
</activity>
Perhaps you the package name is incorrect? Try specifying the full package name like this:
<activity android:name="com.example.hellolinear.Form"
android:label="#string/app_name">
<intent-filter/>
</activity>
The correct way to this, however, would be to add the package name like this tou your manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hellolinear"
android:versionCode="1"
android:versionName="1.0.0" >
at least one activity must contain with intent filter that contain action as action.MAIN and category as Launcher as per my knowledge.Hope this helps as you haven't provided the intent filter in your manifest.
<activity android:name="your package name.Your Activity Name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Your Package name is not written correctly. Your Code:
<activity
android:name=".Form"
android:label="#string/app_name">
<intent-filter/>
</activity>
Instead of above, write this:
<activity
android:name="your package name.Form" // eg: android:name="com.example.myapp.Form"
android:label="#string/app_name">
<intent-filter/>
</activity>
I created multiple packages to better structure our Android-based project. After creating these packages, the application no longer runs. It's a widget application. I noticed that the application manifest needed to be modified and did so. This didn't seem to fix the problem. I don't get any error messages, I'm simply not able to open the main activity page from the application widget. Could anyone tell me how to resolve this issue?
For more detail, I initially had a flat project structure (com.domain.A). Now I have the following:
com.domain.Activities
Activity1.java
Activity2.java
com.domain.Features
Feature1.java
Feature2.java
com.domain.Services
Service_1.java
Service_2.java
etc...
Here's an excerpt from the manifest file:
<activity android:name="com.domain.Activities.Activity1"
android:theme="#style/Theme.D1"
android:label="#string/act1"
/>
<activity android:name="com.domain.Activities.Activity2"
android:theme="#style/Theme.D1"
android:label="#string/act2"
/>
<activity android:name="com.domain.Features.Feature1"
android:theme="#style/Theme.D1"
android:label="#string/fea1"
/>
<activity android:name="com.domain.Features.Feature2"
android:theme="#style/Theme.D1"
android:label="#string/fea2"
/>
<service android:name="com.cmu.Services.Service_1"/>
<service android:name="com.cmu.Services.Service_2"/>
Thanks.
After moving the classes in packages, how have you defined the activities in the manifest.
(as a thumb rule ctrl+click on activity declaration in manifest should take you to class file, else link is broken), its generally better to keep all classes extending Activity in main android package of your app
EDIT:
if your MyActivity lies under package a.b;
then .a.b.MyActivity is to be used for android:name in manifest the dot(.) initially specifies to use package-prefix from manifest package name..
You specify a package in your manifest, then you can just use the . prefix to reference the package for the Activities you define in you manifest. So for example:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain"
android:versionCode="1"
android:versionName="1.0" >
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:label="#string/app_name"
android:name=".activities.MainActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.Activity1" />
<activity android:name=".activities.Activity2" />
You main launcher activity is thus: com.domain.activities.MainActivity and the other two are: com.domain.activities.Activity1 and com.domain.activities.Activity2