I received a project from someone and was tasked to add some feautres. I wanted to add an activity under com.X.X . However, there was no such selection for me. Selecting New > File only gives me a blank .java file. There wasn't a selection for me to choose a blank activity, activity with button, etc. How do I fix it? My API level is on 23.
It's simple to sync the project. Go to the File menu and select sync project with Gradle file. Then you will get all the options in the File menu.
Happy coding...
Till Eclipse, creating a second activity and class had a brevity . However, with the new official Android studio , I feel more of an abstraction . Earlier, while creating an activity it specified many things, nevertheless asked the layout of an XML file. And here are my doubts:
1) Is there an option to create Java file in Android Studio just like we use to do with Eclipse ?
2) Which is the best way to create an activity in Android Studio with our specified layout?
1) You can go into the project directory and right click the folder where you want the activity to be (typically in src/java/com.xxx.xxx/) and select New -> JavaClass and create YourActivity and make sure that YourActivity extends Activity. Be sure to add the activity to your manifest!
2) There is no best way as it is a matter of preference. Personally I do what I said in step 1 and create the xml layout file myself in the res folder. I find that Android Studios auto activity creation to be a bit annoying as they add menu xml files that I do not need.
I have the newest version of Eclipse (32 bits) and I can't create any activity. Even if i make New -> Other -> Android activity it also doesn't make it. I have Windows 8.
When you create a new Android project by default the activity "MainActivity" and layout "activity_main" are created.
the message activity_main already exists is displayed.
If you want to add another activity with New -> Other -> Android Activity you have to change the name :P.
UPDATE:
https://code.google.com/p/android/issues/detail?id=66647
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.
Copy your project to a new one (Ctrl+c & Ctrl+v).
Change the package-name in your manifest
Rename your main package with refactor. Don't forget to select.
Change your application name in manifest
application android:icon="#drawable/icon" android:label="**new name**"
I just want to add an item to Mur Votema's list:
5) 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. :-)
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.
Mandatory tasks:
In Eclipse, Copy and paste the project. (Give the project a new name)
In Manifest, update the Package name and save. (Update Launch
Configuration)
Refactor and rename the Package name. (Update references)
Optional tasks:
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.
Refactor and rename the java files name, so they won't be confused
with the original project files.
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.
There's now an automatic tool for that, part of the ADT.
Make sure the origin project is open in Eclipse, copy & paste to a new name
Right click on the new project > Android Tools > Rename Application Package
Done
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.
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.
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.
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.
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.
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
I used the eclipse Luna, I tried to copy an existing project (Project_A) as below
Create a new Java project (its name is as Project_B)
Right click on Project_B (to pop up the context menu)
Select the menu item "Import..." (to show the "Import" dialog)
On the list under the "Select an import source" field to extend the item "General"
Double click on the sub-item "File System" (to show the "File System" page)
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")
Check the checkbox of "Project_A" directory under the "From directory" field
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")
Click the "Finish" button (because the Project_B is empty, need not care any more)
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)
I've followed the Android documentation to create a library. Basically, I've created a new project and, then, edited it's properties to check the "is Library" box. Then I've added a reference to it at my runnable project, using also "project properties"->android->Reference.
Everything seems ok, but I can't figure out how to, from the runnable project, start an activity I've put in the library project. For example, I start an activity that is inside the project using
intent = Intent(this, ActivityClassName.class);
But the following, which I tought was the correct for a activity in a lib, doesn't work
intent = Intent(com.example.libpack, ActivityClassName.class)
I've put the exported activities in both manifests (lib and runnable)
I've seen some hints on web, but things are very obscure to me. This is the right way to export and embed an lib? Or should I use the Export option in Eclipse File menu to export a JAR file from the library? If both are possible, which would be better?
You're doing right, but the first argument to newIntent() is not the package the activity is in, it's just the context. It will probably work if you use again this. If it still doesn't work, please edit your question to include the error you're getting (check LogCat and Console tabs).
When a context is required and you're in an Activity, it's better to use getApplicationContext() instead of this (see here).