Android - copy existing project with a new name in Eclipse

AndroidEclipseProjects and-Solutions

Android Problem Overview


I'm using Eclipse. Say I have a project 'ProjectA' in the eclipseworkspace (in a folder ProjectA). I want to copy the project but with a new name (ProjectB) and have all the references in the new project adjusted. I can't find much help for what I thought would be a vary basic operation. I want to try out variations on the original design/code and creating a copy seemed the obvious way to go about it.

Any suggestions please.

Android Solutions


Solution 1 - Android

  1. Copy your project to a new one (Ctrl+c & Ctrl+v).

  2. Change the package-name in your manifest

  3. Rename your main package with refactor. Don't forget to select.

  4. Change your application name in manifest

    application android:icon="@drawable/icon" android:label="**new name**"
    

Solution 2 - Android

I just want to add an item to Mur Votema's list:

  1. Don't forget to open the project you want to copy!

It just cost me some minutes to find out that it doesn't work with closed projects. :-)

Solution 3 - Android

If you are using Eclipse and all you want to do is clone your Android project and give it a new project name, simply do the a copy/paste (Ctrl-C & Ctrl-V - step 1 in Mur's answer above). Eclipse will ask you for a new project name when you paste and you're done. The Eclipse project name and directory are independent of the application name and package.

Solution 4 - Android

Mandatory tasks:

  1. In Eclipse, Copy and paste the project. (Give the project a new name)
  2. In Manifest, update the Package name and save. (Update Launch Configuration)
  3. Refactor and rename the Package name. (Update references)

Optional tasks:

  1. In Manifest, change the Application label and icon, so after
    installing the application on your device it won't be confused with the first one.
  2. Refactor and rename the java files name, so they won't be confused with the original project files.
  3. If you have used Encodings such as UTF-8 in your project (in order to handle languages other than English) you might need to edit and save those files so their font would be shown correctly.

Note: If you do the 3rd task before 2nd task, some undesired imports would be added to your java classes. You then will need to remove those imports.

Solution 5 - Android

There's now an automatic tool for that, part of the ADT.

  1. Make sure the origin project is open in Eclipse, copy & paste to a new name
  2. Right click on the new project > Android Tools > Rename Application Package

Done

Solution 6 - Android

As said above all you have to do is copy+paste the project and rename it ["myApp.11"] but sometimes this feature gets bugged in eclipse. One such case happens when you have more than one version of the jdk. to solve this close eclipse rename the older versions of the jdk with an underscore e.g. _jdk17.2 and retry. if you dont need these versions delete them.

Solution 7 - Android

Another thing I noticed is that if you leave android:label="@string/app_name" it somehow keeps the original app name when you view the copied app in the list of Applications in Settings > Applications > Manage applications but if you change it to android:label="Your App Name" it seems to work ok.

Also be sure to change your icons properly by deleting the old ones and importing the new ones.

Solution 8 - Android

I went to the workspace folder on C:/ (path different for all) copied the project folder (Project A), and pasted it with a new name (Project B). Change the name while in explorer. Then, through Eclipse, made a new android project with the new name (Project B). Different way of doing it.

Solution 9 - Android

I Just wanted to add this after struggling with a code i have at work:

DO NOT USE THE PACKAGE NAME EXPLICITLY IN YOUR JAVA CODE NO MATTER WHAT. YOU MIGHT NEED TO RENAME YOUR PROJECT . EXAMPLES ARE : getResource() and setting the Bitmap source and such and such

it looks like that I had bad references to the package name. it name was used explicitly as a String (e.g "com.pakge.mypkg" ) instead of Context.getPackageName() .

try to reach this method anyways you can 'cos the way i just mentioned it might not work for you... try to reach the method name "getPackageName()" from different other objects.

Solution 10 - Android

I have to answer not comment as reputation not high enough - to say that I agree @jengelsma has the best answer, just copy and paste, but watch out for the (hidden) SVN files (in .svn folders)! Unless you want the same references as the other project you don't want these.

Team > disconnect and check 'also delete SVN meta data' on your new copy to do this.

Solution 11 - Android

Just want to add some more points :- Be ensure that the package name must be different for new project and old project if both project are going to install on same machine.

also modify the same in Mainfest.xml under http://schemas.android.com/apk/res/android" package="com.java.new.prjname

Solution 12 - Android

I used the eclipse Luna, I tried to copy an existing project (Project_A) as below

  1. Create a new Java project (its name is as Project_B)
  2. Right click on Project_B (to pop up the context menu)
  3. Select the menu item "Import..." (to show the "Import" dialog)
  4. On the list under the "Select an import source" field to extend the item "General"
  5. Double click on the sub-item "File System" (to show the "File System" page)
  6. Enter the path of "Project_A" directory into the "From directory" field (or click the "Browse..." button to find and select the directory of "Project_A")
  7. Check the checkbox of "Project_A" directory under the "From directory" field
  8. To see if the "Into folder" field is showing folder name as "Project_B" (if not, click "Browse..." button to find and select the "Project_B")
  9. Click the "Finish" button (because the Project_B is empty, need not care any more)
  10. The all contents of Project_A are copied into Project_B, we can run the Project_B as the Project_A (if needed we can refactor the Project_B)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionronView Question on Stackoverflow
Solution 1 - AndroidTimaView Answer on Stackoverflow
Solution 2 - AndroidiwpSoftwareView Answer on Stackoverflow
Solution 3 - AndroidjengelsmaView Answer on Stackoverflow
Solution 4 - AndroidNima KView Answer on Stackoverflow
Solution 5 - AndroidAmir UvalView Answer on Stackoverflow
Solution 6 - AndroidRubber DuckView Answer on Stackoverflow
Solution 7 - Androidben_nuttallView Answer on Stackoverflow
Solution 8 - AndroidCcorockView Answer on Stackoverflow
Solution 9 - AndroidRani Fayez Ahmad - SuperlinuxView Answer on Stackoverflow
Solution 10 - AndroidJonView Answer on Stackoverflow
Solution 11 - AndroidDroid AnupamView Answer on Stackoverflow
Solution 12 - Androidphchen2View Answer on Stackoverflow