Multiple apps on my emulator for my one project - android-studio

Wondering why I'm working on one project in my Android Studio window, but when using the emulator, I see multiple applications that go to different activities. I'm trying to develop one application, not a couple that toss the user around to different applications.
I also notice that when I uninstall one application from virtual machine/emulator, all four icons disappear.
EDIT: Found an answer on a different thread: Android App activities installed as multiple icons

check your manifest:
prpbably you have more than one activity with intent filter tag
<intent-filter>
<action
android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
once delete all from emulator and in your project manifest just luncher activity must have intent-filter tag

Related

Android Studio "Default Activity not found" forced restart after each build [duplicate]

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.

Android Studio on Ubuntu 18.04: No Fragments Found... How do I "create one or more Fragments in code"?

Scenario
I'm starting to learn Android Development on my Ubuntu laptop, but having issues with creating layouts with fragments.
Steps Taken
I created a new project with an Empty Activity
I right-clicked my app folder and performed: New > Fragment > Fragment (Blank),
Named it TestingFragment
Unchecked "Include fragment factory methods?"
Unchecked "Include interface callbacks?"
Under res > layout I updated the fragment (fragment_testing) to recognize it within the main activity
I went to the activity_main.xml file, added the FrameLayout to the layout
I tried to drag the < fragment > component to the FrameLayout
I receive an error message with just an OK button:
No Fragments Found
You must first create one or more Fragments in code.
My Best Guess
It appears that my Android studio is not recognizing that I have the fragment code created and just need to add it to the layout.
Perhaps I need to configure the Gradle scripts to be able to find the TestingFragment class?
What I've Tried from Googling Around
I have installed, uninstalled and re-installed Android Studio using Snapcraft
I have installed, uninstalled and re-installed Android Studio using android-studio-ide-191.5791312-linux.tar.gz from the official Android Download site within the /opt directory.
I have made sure all plugins are checked via File > Settings > Plugins
I have verified that my Android SDK Location is pointing to the right folder via Tools > SDK Manager.
Under SDK Platforms the following SDKs are installed and checked:
Android 10.0 (Q)
Android 7.1.1 (Nougat)
Android 7.0 (Nougat)
I have tried the File > Invalidate Caches / Restart... option choosing the Invalidate and Restart button
I have tried the File > Sync Project with Gradle Files option.
I have tried the File > Sync with File System option
Edit:
I have been able to go into the xml of the main_activity layout file and add a fragment tag manually and found that it can work. The following is the manual tag I managed to add:
<fragment
android:id="#+id/fragment"
android:name="android.example.testfragments.ListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="#layout/fragment_list" />
Still working on fixing the drag-drop "No fragments found" issue.
Where to go from here?
Does anyone know where I can go from here other than virtualizing another OS like Windows to see if it works there?
Solution
So after hours of poking around the settings and googling around, I discovered the reason why it wasn't working by accident.
While creating a new project, the application's Package name field cannot follow the "android.example.packageName" pattern.
After being unsuccessful for so long, I decided to try a new project and change all the options to completely start anew from scratch. During the process, I changed the package name to "com.frags.testing".
I then proceeded with the steps described above to make a fragment and I was successfully able to add the fragment using the drag-drop method into the main_activity layout.
I also verified that this worked by going back to my previous project where it wasn't working and creating a new package named fragments and refactored the fragment class to that new package. I then went back to the main_activity layout and dragged the < fragment > component to the layout and it successfully found the fragment.
Hope this helps someone else out there.
Cheers,
Justin

Default view isn't loading

I am beginner in Android studio. I am trying to make a splash screen on android studio. But it's not showing my text and images in layout section. Might be it's a small issue but I'm stuck in it.
Try to resynchronize your Gradle, if it does not work you can also go to File -> Invalidate Caches / Restart.
EDIT:
To build your app you need to define your MainActivity in your manifest like:
<activity android:name="com.example.splashscreen.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
If this does not work, you might need to open your build configuration clicking on this:
Then select "Edit configurations" and select "Specified activity" in launch options
Hope this helps

My app icon has changed back to Android default after updating Android OS

I was prompted with an Android update today which I agreed to and after it had run and rebooted the app I've been working on has gone back to the Android default icon. The text is correct but even after uninstalling the app and re-installing it the default icon remains. I've checked the Android manifest and the settings remain the same as below
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
I've checked the files and they are the same, so why does my app still show the Android icon? Has anyone else experienced this?
I did had similar problem, what i did is replaced my logo file with standard resolutions framed by google Here
with exiting one in the project. As your exiting logo might not following the new and updated standards of Android.

Can't add a new activity on android studio

I'm trying to improve my android development skills, so working on some project about it. In my project, I added a new "Navigation Drawer Activity", then I deleted it because I wanted to create a new one but I can not able to add even another type of activitiy. Android studio adds ,
<activity
android:name=".ExampleActivity"
android:label="#string/title_activity_main" >
</activity>
tag in AndroidManifest.xml but It doesn't create any classes and xml layout files.
Also studio says:
ide internal error occurred android studio.
I tried regenerate R.java and clean my project ,but it doesn't work. How can I get rid of this problem?
Try to add a simple JavaClass and write an "extends Activity" behind the class name. And put this new Activity in the Manifest like in your example. You can add a menu and a layout like this, too, when you add xml-Files in the layout and menu folders. This should work.
I can not find a exact solution to that problem. Re-installed the Android Studio . It does the solution manually
If it's about how Activities is not showing up as an option in either the shortcut menu in the Layout folder or File + New in the menu, you can try File + "Sync Project with Gradle files" and give it some time.
This also adds options to the Tools menu (great if AVD or SDK Manager is missing).

Resources