I am getting an error which reads The activity 'MainActivity' is not declared in AndroidManifest.xml
What is the problem here?
I got this error when moving a lot of files, to fix just resync your gradle files.
File->Sync Project with Gradle Files
Try to go to File->Invalidate Caches / Restart and choose invalidate and restart ,it worked for me
Sometimes when moving or renaming files, you can have broken XML files. My case that the ic_launcher.xml was corrupt. I regenerated that and worked just fine.
Check every XML in your proyect.
You are most likely just missing the below from your AndroidManifest:
<activity
android:name=".MainActivity"
android:label="#string/app_name"
Here is a full example of an AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.pejner.myapplication">
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:theme="#style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
this happened for me when my laptop suddenly shut down when working with project. if you see your activity declaration in your manifest, do not open any xml files. they maybe broken and corrupt after opening files.
so do these steps:
delete all .iml files from your project
go to Files => invalidate cache / Restart
Rebuild your project gradle
finally if problem still exists, go to Files => Sync project with gradle files
https://stacklearn.ir
This can be only two reason,
the bold one, missing extend statement
class MainActvity extends AppCompatActivity
or
you are using a wrong package name to register your activity so just in this case use ALT+Space then studio will show the options itself.
All of my XML file were cut in half for some reason, I'm not sure when it happened (I use Git VCS, so maybe that). I had to go through each of them and restore the code.
It have three ways to resolve
1:-
Go File->Invalidate Caches / choose invalidate and restart ,it works
2:-
If you make MainActivity make sure you have onCreate method in it and extend with AppCompatActivity .
3:- And last option sync project with Gradle file
Follow these steps:
File => Invalidate Caches / Restart...
Files => Sync project with gradle files
If the steps above don't work, write:
com.example.(project name).MainActivity
It should work, worked for me.
For those cases the you recently changed the android:allowBackup settings, make sure you also set the tools:replace="android:allowBackup" in case some of your dependency have it declared in them to override it. I wouldn't know this solution until I manually execute Gradle > app > cleanbuild > lintFix
The exact error I received was:
Error: Attribute application#allowBackup value=(false) from AndroidManifest.xml:41:9-36
is also present at [com.kaopiz:kprogresshud:1.2.0] AndroidManifest.xml:12:9-35 value=(true).
Suggestion: add 'tools:replace="android:allowBackup"' to element at AndroidManifest.xml:39:5-254:19 to override.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.YOURPAKAGE">
<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/Theme.YOURPAKAGE">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
NOTE:
Replace your AndroidManifest.xml file code with the above code and you just have to change the name of your package at those places where I have mentioned (YOURPAKAGE) hopefully the problem will be solved
replace in your AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.justjava">
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
You should try this
<activity
android:name="com.example.stockquote.StockInfoActivity"
android:label="#string/app_name"
/>
For more detail you can check hereActivity declare
Thanks everyone for taking the time out to help a beginner.
I found out that I had somehow misspelled the Package in MainActivity.java
When I corrected it the error was gone.
Thank you all.
I was getting an error "The activity 'MainActivity' is not declared in AndroidManifest.xml", even though it was correct in the manifest file.
My problem was that when I created the project I had to mark the item "Use AndroidX artifacts".
If you see that error occur after upgrading versions of IntelliJ IDEA or Android Studio, or after Generating a new APK, you may need to refresh the IDE's cache.
File -> Invalidate Caches / Restart...
I was working on my project suddenly my laptop restarts i tried lot of methods but i was not able to fix it.
But at the end i did it
do these steps and let me know it is working or not?
1. File > Invalidate Cache and restart the the android studio
2. Build > Clean Project and then Rebuild project
3. Sync project with gradle files
if it is still showing you error try these steps
1. Create new activity
Remember to clink on checkBox Launcher Activity
Hope this will Fix your problem
In the end go to AndroidManifest.xml and change New activity Default to previous activity
In my case, none of the answers helped. Luckily, I remembered that I added a variable in build.gradle, which I tried to access from MainActivity.
Problem was that this new variable wasn't present in AndroidManifest.xml. Once I added the variable to AndroidManifest.xml, the problem was solved.
This is an odd one. For me I had to open Edit Configurations (run configuration) and select <no module> under the Module drop-down. Then reselect my project under the Module drop-down and Apply. It the built and ran just fine.
Had the same problem with a project which I just downloaded the starter code for
an app , everything looked fine in the AndroidManifest.xml , I just deleted the com.example.android.(yourappname).MainActivity and wrote .dMainActivity and it worked.
Related
I'm new to android app development with Android Studio and I came across this error when trying to run my app
Error: AndroidManifest.xml doesn't exist or has incorrect root tag
I found out that my AndroidManifest.xml file had some weird characters in it
Can someone please help me out here.. Thanks
Somehow your AndroidManifest get corrupted. AndroidManifest should contain root application details and other project settings like as follows. Please try again
by creating new project.
<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=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Happy to hear that you start to develope app for Android.
And I suggest you can re-create a project, and the problem will disappear.
Have fun.
I hope this solution will help
this problem in your version of Android Studio
upgrade it to 3.3.RC3 and the problem will disappear
I read all the suggested answers below and mostly suggests that you create a new project because your manifest also looks very new.
It's very important to understand and memorise the body of the Android Manifest so in future you won't mess up again and can quickly debug your Manifest if some of the body went corrupted or accidentally deleted.
Creating a new project from scratch is time-consuming..
I had the same error lately and
I solved this by clicking Sync projects and gradle files.
I tried all stuff but this resolve my issue:
When i open my AndroidManifest.xml file i release that doesn't contain the the code i wrote on it.so i write click the file go to show in explorer where i found my old code so copy paste and the problem resolved!!
Guys If Nothing is working in your case like me then for protecting your hard work and your efforts You can do one thing very common but very helpful i.e.
Make a new Android Project
Go to android project Directory of your previous project.
In my case- C:\Users\knegi\AndroidStudioProjects\Projectapp
Than go to main Directory inside your Previous project.
In my case- C:\Users\knegi\AndroidStudioProjects\Projectapp\app\src\main
Copy all files from main Directory and paste them into main Directory of New Project.
Now all set open our new project and Run.
I wanted to give Kotlin a shot. I converted my java classes to Kotlin and corrected some errors. If I try to build, the following error comes up:
Error:Execution failed for task ':app:generateDebugInstantRunAppInfo'. Cannot find main merged manifest.
This is the manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mdrueke.kniffel">
<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=".MainActivity"
android:label="#string/app_name"
android:theme="#style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan">
</activity>
<activity android:name=".Setup_Activity"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Thanks for your help!
I’ve been experimenting with Kotlin development in the just-released Android Studio 3.0 Canary 1 and get the “Cannot find merged manifest” error every now and again. I’ve found that selecting Build -> Clean Project solves the problem for me.
Clean Project is worked for me in Android Studio 3.0 canary version
In my case, I'm using Android studio 3.0 Canary 2, first i try Build -> Clean Project still not solves the problem for me, then I close the project and open it again, Alhamdulillah it's solves the problem
I tried both cleaning the project and close-opening it, but they don't work in my case.
After editing the manifest (not a functional change) now project runs.
Because Build -> Clean Project, restarting Android Studio or reinstalling app may not work, the simplest solution was to change AndroidManifest.xml, e.g. add or delete white space.
Here is reported issue: https://issuetracker.google.com/issues/62336754.
As mentioned there, it will be fixed in Android Gradle Plugin 3.0.0-alpha5.
You can solve this problem by uninstalling the app you're currently working on and running it again on Android Studio.
Tried the given solutions but wasn't successful. So for the mean time until this bug gets fixed I am going for the commandline
./gradlew clean install<your_build_variant>
Example:
./gradlew clean installDevDebug
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.
I upgraded IntelliJ IDEA from 12.0.4 to 12.10.
Now all the modules in my Android project give the error:
Error: Default Activity Not Found
I reverted back to 12.0.4 and it everything works again.
Any ideas? I think it might be an issue with a missing plugin. Since the plugin is not installed, it is not able to find the default activity. Another thing could have been a local configuration, but I doubt it. I deleted the configuration folder to verify and that didn't change anything.
If you see that error occur after upgrading versions of IntelliJ IDEA or Android Studio, or after generating a new APK file, you may need to refresh the IDE's cache.
Menu File → Invalidate Caches and restart...
I can't comment on why the upgrade of IntelliJ IDEA might cause this problem because I don't use it.
However, that error: "Default Activity Not Found" seems to be telling you that you don't have an activity declared in file AndroidManifest.xml that is marked as the main activity, to be launched when the application starts.
You should have at least one activity that looks something like this:
<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>
If you don't have at least one activity with an intent filter like that, you would most likely see the error message you have included here.
You should add that intent filter to the Activity that you wish to open when you start the application, and that should fix your problem.
Additional details
(Android Studio 4.1.2) if the project is created as EmptyApplication then the developer must manually create below three files to avoid the Default Activity Not Found error:
File AndroidManifest.xml
File MainActivity.java
File activity_main.xml
If your app has a launch activity default, possibly this could be your mistake:
Step 1: Select Edit Configurations
Step 2: watch this warning: Default Activity not found
Step 3: select a default activity
Step 3: Save your changes and finish
Good Luck
If you are working on a widget app, this solution should work for you:
Go to Edit Configuration
Set Launch Option to Nothing
The correct way to do this is to add the following to the Manifest file:
<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>
This should be inserted between:
<application> </application>
No need in invalidating caches.
Try to right click on the project and choose Open Module Settings. Then go to the Sources tab in your module, find the src folder, right click on it and mark it as Sources (blue color).
There is no sources tab in later versions of Android Studio, but you can edit the build.gradle file instead: How to add a linked source folder in Android Studio?
In Android Studio 4.0, please change Launch to Nothing:
Run/Debug Configuration → Android App → app → General → Launch Options → set Launch to Nothing.
In Android Studio under Run/Debug Configuration -> Android Application -> General -> Activity -> select the option "Do not launch Activity".
Nothing in the previous answers helped me. After some time I found that IntelliJ IDEA changed action names to uppercase. Like:
<intent-filter>
<action android:name="ANDROID.INTENT.ACTION.MAIN"/>
<category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/>
</intent-filter>
After reverting to normal, IDEA recognizes the default activity:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Firstly make sure that you have the included default activity in manifest.
Example:
<activity android:name=".DefaultActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
If you have tried everything and nothing seems to works then
Delete the cache from your %Home%\.gradle\caches and sync project again.
Or check this answer:
Android Studio shows wrong file contents
This solution is 100% working
You must be seeing this:
First, open your manifest and check if this is present,
<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>
If not present, add it
If the above is present, but still you see default activity not found, follow these steps:
Click edit configuration
On clicking edit configuration you'll see that the launch option is set on DEFAULT ACTIVITY
Change it to nothing.
Problem solved!
Note
Please make on the root of the manifest file you should have the package name
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.name">
In my case menu File → Invalidate Caches / Restart... didn't help.
Everything was OK with my project and of course I had the following intent filter for my activity:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
What really helped me was deleting the Android/Gradle cache folders (they can grow up to 10-30 GB).
Go to C:\Users\YOUR_USER_WINDOWS_NAME and delete the following folders
.android
.AndroidStudio3.2
.gradle
(You may save some Android configurations from .AndroidStudio3.2 before deleting it if you want it.)
This method works for me. Click on the app icon and then choose edit configurations.
In the edit-configuration, choose the specified activity instead of the default activity.
Then give the path of the activity below.
In the end, synchronise with the Gradle files.
Exit Android Studio.
Go to path C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system
Remove the /caches folder and the /tmp folder.
As this question is a "landing page" for plethora of issues with manifests, resulting in no Default Activity found, here is another thing to check if you are having this problem.
Open your manifest and switch to Merged Manifest tab.
Sometimes the issue is related to merging all the manifests in the project to one, which can result to error and therefore "Default Activity not found". The problem is this error is not shown anywhere except this Merged Manifest tab as far as I know.
For example: in a project minSdkVersion 10, downgrade the version of implementation in build.gradle file: from 25.4.0 to 25.3.1 solve this problem.
dependencies {
implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support:mediarouter-v7:25.3.1'
I changed my Intent-filter to
<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>
Just add the DEFAULT option as well. I was using the Process Phoenix library and it prompted me to define a default intent. This addition solved my problem.
This occurred to me after my PC restarted unexpectedly. Strangely, I had made no changes and still got this error.
None of the above helped me. What solved my problem, was this.
Step 1:
Step 2:
Step 3:
If this doesn't solve the problem give other tries.
Try 1:
Menu File → Invalidate Caches / Restart...
Try 2:
Check whether the following two lines,
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
are in your launcher activity declaration in file manifest.xml.
<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>
Try 3:
Click as shown:
Run / Debug Configurations opens.
If this doesn't help either:
Try 4:
Menu File → Export to ZIP.
and
Import it as a new project.
I got this error.
And found that in the manifest file in the launcher activity I did not put action and
category in the intent filter.
The wrong one:
<activity
android:name=".VideoAdStarter"
android:label="#string/app_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</activity>
The right one:
<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>
TouchBoarder almost had it. Although selecting "Do not launch Activity" results in nothing launching.
In Android Studio under Run/Debug Configuration → Android Application → General → Activity → select the option "Launch:"
Choose your Activity. This doesn't exactly fix the intended behaviour, but rather overrides it correctly.
All previous answers didn't help me.
Try to remove
<?xml version="1.0" encoding="utf-8"?>
in your AndroidManifest.
Then menu File → Sync Project with Gradle Files.
In case your application doesn't have an Activity (only a service for example), change the run/debug configuration 'Launch' option to Nothing.
I found this in my code:
<context android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</context>
If you look very carefully, it should be <activity android:name=".MainActivity"> instead.
Apparently, I refactored an "activity" somewhere, and it changed names in the AndroidManifest as well.
In my case I refactored a member variable that was named "activity". I renamed it to "context"...
I found out that the refactor was made to the activity tags in the manifest, and I found them to be context tags instead... this is really stupid from Android Studio side!
Menu Build → Rebuild Project
Menu File → Invalidate Caches... → Invalidate and restart
It works for me.
Rebuild the project to make sure that there aren't any errors in the project. Then we can invalidate the cache.
I have the same problem in Android Studio 3.3 Canary 3.
The project from the Android Studio 3.0 stable version works firstly correctly, but then after some cleans/rebuilds, it starts showing the No Default Activity error.
I tried to reinstall this alpha version of Android Studio: error again. But then I started it in the old stabile Android, and using APK install, and this APK file works correctly.
Moreover, my project was created with Instant App (base, feature, instant, and app subdirectories). I think this Android Studio has some problems with Manifest.xml files separated into this multiple directories.
So I have changed it in settings to this:
Sync Project With Gradle Files works sometimes.
To fix this overall issue you should:
Exit Android Studio
Go to folder USER → AndroidStudio → system → caches
Delete that folder
Start Android Studio.
It will re-index your files and that should work.
Thanks to kirtan403 from a similar question.
Since Android Studio 3.5 or 3.6 I started getting the Default Activity not found and I became tired of Invalidating Caches & Restart, rebuilding project, etc.
It turned out, the way I handle multi-modules and manifests was erroneous. I had the default Activity's Manifest in library module only, but it should've been in both app modules.
Assuming librarymodule appmodule1 appmodule2
Remove HomeActivity from librarymodule Manifest whatsoever.
Add:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
To appmodule1 Manifest inside application tag, I added:
<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>
Same about appmodule2 but change 2 for 1 in naming.
This is still happening with Android Studio 4.0, so I have to delete the following folder to fix this problem:
C:\Users\my_user_name.AndroidStudio4.0\system\caches
In my case, there was a typo in AndroidManifest.xml as shown below. Removing the "o" letter above the application tag solved it.
Apparently, Android Studio doesn't detect type errors in AndroidMainfest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
o
<application android:name=".AppName"
android:allowBackup="false"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#android:style/Theme.Light.NoTitleBar">
Error: Default Activity Not Found
I solved it this way:
Run → Edit Configuration → Android Application → *enter the path of your default activity class in the "Launch" Edit Box.
I created a new blank activity from Eclipse's 'New' menu.
I didn't get any errors, and the activity looks to have been correctly populated in the manifest, however, no java class file has been created.
I get the impression that within Eclipse, the class should have been auto-created and auto-populated with the onCreate and onOptionsItemSelected method templates.
Why didn't Eclipse automatically create the class for me?
Manifest code as requested:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myfirstandroidapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.example.myfirstandroidapp.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>
<activity
android:name="com.example.myfirstandroidapp.DisplayMessageActivity"
android:label="#string/title_activity_display_message"
android:parentActivityName="com.example.myfirstandroidapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstandroidapp.MainActivity" />
</activity>
</application>
The fastest solution: keep the Activity in your manifest, but create the java class by right-clicking your package -> new -> class -> DisplayMessageActivity and then extend the Activity class and add the missing methods. Note that the class name have to match the one declared in the manifest
EDIT
After you've done it, clean the project by selecting project -> clean and check if there are any error messages left
I needed to uninstall Eclipse and install the sdk (adt bundle) from http://developer.android.com/ which comes bundled with eclipse to resolve this issue.
I found that my original set-up not only failed to create source files, but was also unable to create new android projects, even though it managed to create the first project successfully. Something must have happened to ruin the set up, no doubt, something I did but cannot trace.
What worked for me...
In eclipse, go to Help >
Install new software... > Work with: https://dl-ssl.google.com/android/eclipse/
Hit enter, checkmark "Developer Tools" and "NDK Plugins".
Let it download and install. I had to delete "myfirstapp" and remake it.
Restart Eclipse once it has downloaded and installed.
Having that issue and actually doing it over again helped me understand more about the syntax used in the lessons that I've already been through before.