I changed the name of my app by editing the #string/app_name string resource. Now when I download it from the Marketplace, I get two icons on my homescreen - one with the old name and one with the new! I'm stumped. I don't know where the old name is coming from. I did a search on the entire project folder and still can't find it!
And yes, I have just one activity with the action.MAIN and category.LAUNCHER intent filters. So any idea what gives?
Did you change the package name too when you changed the app_name? If you did then you have two different apks installed on your device and you need to uninstall the old version of the package from the Settings screen.
Just tested this on another device and only one icon was installed. Must have been something wonky with my development device!
Related
How can I change the app name when installing? Once installed my app name on the icon is correct and everything else is in place.
Thanks in advance
Edit:
Sorry I'm not being clear.
I started a project with the app name as Simple Counter but now it's something else. When I build the APK and install it the name appears as Counting App.
In the AndroidManifest.xml, there should be an <application> tag with a android:name attribute. This is where you set the name which appears below the icon in the device's launcher. You will also see that each <activity> tag has a android:label attribute. This is the text which is shown in the tool bar when that activity is active. Both of these attributes can be set using a string resource. This allows you to make a single change to your code in order to update both places where the string is displayed. It also allows you to provide translations in other languages.
If you make these changes and they still stay the same when you run your app from Android Studio, you should turn off Instant Run.
For this, uninstall your application from your device, after that clean all caches files. Then try to install the application again.
So my dilemma is that I have two versions (we'll call version A and B) of my Android application, each on different phones. The difference between them is their launching activity name.
Now, there is a third version of my app which is an upgrade to either of the two versions I described above.
Now, I understand that you should have the same launching activity name on the new version of an app if you want things to upgrade correctly (i.e. keeping the same launcher icon).
So here's the problem: I have this third version that has the same launching activity name as version A, so after the upgrade happens, the same launcher icon is used which is what I want. However, when I try to upgrade version B which uses a different launching activity name from the upgrade, it deletes the old launcher icon and puts in a new launcher icon with the updated name.
This causes at least one notable problem: take the Galaxy Note for instance. You can add folders in your app drawer. If Version B was in a folder to begin with, the upgrade would cause that launcher icon to be removed and then the new launcher icon would be added to the drawer rather with the rest of the applications than the folder.
Now is there a way to provide two names to an activity-alias so that I can solve this issue? Any other suggestions? Please and thanks! I apologize in advance if any of this was not clear. Thanks for reading!
I've created an android app and installed it on my device.
Now I have changed the name and the icon for this app.
Is it possible to install this next to the "previous" app ?
When I try this it overwrites the previous one.
(I would prefer not to change the package name(s) since want to do this more then once).
No it is not possible the way you want. Name of application is irrelevant (it is just for humans). Package name (package attribute of <manifest> is what matters, so you need to name packages of your both builds differently to make this happen. There's no other way.
You will have to change the package name.
I have rather stupidly published a game on the android market with a package name of mick.game.tangletwister, whereas I should have called it com.rai.tangletwister (where rai is the name of my company)... it all seems to work fine - but could it cause some trouble in the future - should I change it? And if I do change it, will it cause problems for existing users that grab the updated version?
It will be fine if you keep the existing package name. Nothing wrong with that. The TLD.company.appname format is just a convention. As long as you don't enter some special characters in your packagename (which you did not), it will work anyway.
But if you try to change it you will run into trouble. See Things That Cannot Change.
If you change the package, update notification will not work any more. Moreover, when a user with the old package name installs the updated game, he/she will have both installed, because the update will replace the old version only if package/class are the same.
Depending on how many installs you have, you can, of course, remove the existing app from the Market - this should force-remove it from devices where it's installed. Then you create another app (same metadata, naturally) and use a correct package name.
1) Change the package name
2) Create a new app in the android market with that new package name
3) Update the old app, and add a pop-up saying that users should install a new version. Possible with a link to the new app
4) After some months, you should remove the old app.
Like user287351 said, it is possible to keep using the current package name, but i would prefer to have it listed under the correct package name
I wrote two completely different applications for Android, and although learning Android was a bigger pain in the butt than I would have liked, they both work nicely. Unless I try to install them both at the same time.
Android thinks they are the same app! I have no idea why. Both are signed. Android wants me to uninstall app A before I can install app B. It's not like they have the same name or anything. They do use the same package name, but the activity names are different. Does the package name have to be different?
Short answer, yes. The packages are supposed to be specific to your program / 'company' so keep them that way.
The have to have different package names. No two apps in the android marketplace can have the same package name. Just change the package name and you should be good. You can guarentee unique package nams for your app simply with using com.developername.appname naming convention.
Android identifies different applications by their different package names. If an application has the same package name as another in the market (or on the device), it will be unable to tell which one is the correct package to modify / delete / start, and thusly requires all applications to have different package names.
The packages must have different names and they must be signed with two different keys.