When I create application in Eclipse, I use default designer, and get application in namespace:
com.example.MyName
Now I try to upload app to Google Play, but getting error "Package Name "com.example" unacceptable. Please try another."
If I change name to com.MyName, I get a lot of error, like:
R cannot be resolved to a variable
What can I do?
You will need to change the package in at least 2, maybe more places depending on how complex your app is:
Change the package in the package attribute of the <manifest> element in your AndroidManifest.xml.
Change the package name in the src folder by right clicking on the old package, Going to Refactor -> Rename and typing in the same name you used in #1.
Beyond that, if your XML files use custom Views, you will need to update their class name as well. Additionally, you will need to update any other place where you've used a fully qualified domain name, like when launching an Intent from a component name.
Make sure your manifest is up to date.
Make sure your source code moved to the correct package.
Clean your project (Project > Clean). it will recompile your code and the R.java file.
Google Play does not accept the default com.example package name (to prevent everyone is going to use it, I suppose). Changing it to com is even worse!
Use a package with your name, company, application name, nickname, etc. to come up with something unique.
When you change the package of a class, you need to update the import-statements to the class and in the class (and possible other references to it, like the ones in the AndroidManifest.xml).
Just to be sure: you can clean your project to regenerate the automatically generated source files and recompile all classes.
Related
I'm making my own App and reached the point of uploading Apk - file. But it did not succeed, I'm told, to use a different package name, how do I do it? Vh melanie
In case of Eclipse, Goto your project and click on your package and PRESS F2 and rename to any other unique name. This is happen because you are using package name which has already been used.
Tell me if it helps. :)
Change the package name in your code for all your java files. In Android studio you can just create a new package and drag and drop all your code into it and do a refactor, the changes will get automatically be applied to all the files rather than doing it manually.
Next go to the manifest and change the package to the new one you defined, this is where the play store would be looking into to identify your app. As the package name defines your application's identity, so if you change it, then it is considered to be a different application and users of the previous version cannot update to the new version. The package name should be unique.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="add.the.new.pakage.name.here".....
I want to change the package name for an app which is not yet published in the Market. Is there a way to use the new package name as the uniqueId on Market/Play and while still using the old package name in my code?
Changing the package name in the manifest will change how Google Play reads your package name. You don't need to change the package name anywhere else to accomplish that. In Eclipse, the package name for classes can be changed independently (directly under src).
As zapl mentions, you may need to handle a few manual items if your application package name differs from that of the classes within (shortcuts that assume everything is in the same package don't always work in that case). For example, using ".classname" may need to change to a fully qualified classname in the manifest and elsewhere.
If you're looking for a way to change the package name to be different in Google Play than it is in the manifest, then no you can't (it wouldn't be a good idea anyway). You can, however, use library projects to create a new app with the new package name without changing the original code or manifest. Minimal code/xml would need to be written.
I have been using apktool to decompile apps and make changes to better fit my touchpad.
One app in particular (swype) I would like to make a duplicate of with a different size keyboard I can switch to. I have tried changing in the manifest.xml any reference to com.swype I changed to com.thumbswype but when rebuilding the app it says some error about PathNotExist.
I also tried changing the app_name inside res/values/strings and while only changing this allowed me to rebuild the app It still wanted to overwrite the existing swype when I installed it.
The manifest is referring to class names in the compiled code, which would be in package comp.swype. So when you change the manifest but don’t change the compiled code, it can no longer find classes with the specified fully-qualified names.
And the Android system uses fully-qualified class names to identify installed apps. That’s why you can’t have two apps installed at the same time using the same fully-qualified names.
In the manifest I have:
... package="com.domain.app.multimedia"
which then names the application/activity with:
... activity android:name=".MultiMedia"
Eclipse, in turn, generates R.java in the package/path:
... com.domain.app
This package/path name may be a legacy of prior package renamings/refactoring - don't know.
I presumed (a mistake, or not) that R.java generation would follow the package name declared in the manifest. It would be a treat to find out how the gen chose the path/package name it uses. And more to the point, what is the rule for the manifest package name (other than the standard precaution of uniqueness, and relating to an owned domain).
Otherwise, I can live with this (an easy solution where forcing what appears to be an arbitrary import statement solves it all as far as getting a runtime).
Cheers,
Richard
Generally speaking, when you change the package name in your AndroidManifest.xml file, you are prompted with a question if you'd like to change the configuration to reflect the new package.
If you haven't clicked yes, you can always right click on the project -> Android Tools -> Rename application package
I am looking for ways to release two android apps with same source code without any changes but with two different package name without refactoring.
How do I do this?
You need to:
Refactor code to change package name in a IDE (like a Idea or Eclipse)
Change package name in AndroidManifest.xml
Build an sign the application.
What exactly is causing a problem?
when ever you change package name to Refactor but in R file will not package name so and android market consider R file package name.
Change package name in AndroidManifest.xml file now R package name will automatic change. now change old src package name new one. make sure activity is proper mapping.
What is bothering you? Just go ahead and release it with different package names. Make sure you make suitable refactoring in the code as well.