Android Studio Dead References After Moving Folders - android

See update below
I recently changed my android project in android studio from one folder to another in Dropbox. Now all of my references to my res folders are dead, despite the file being intact. I tried cleaning, rebuilding, and invalidating. Still - these issues persist. Have a look, will you?
All red-marked areas come with this code...
Cannot resolve symbol '#string/app_name'
Validates resource references inside Android XML files.
And here is a screenshot of the marked areas:
Despite that I have a perfectly intact res folder and strings.xml file.
What could be going so wrong? All I did was move my files! I moved the whole folder, nothing more!
Should I go back to eclipse? All was working so well before. Any help would be greatly appreciated. If this is a duplicate, I am sorry - I tried several solutions to similar problems as mentioned before but to no avail.
Thank you and if you need more information please advise.
By the way here is the package explorer:
As you can see the manifest and res sources are all there.
UPDATE
The problem was found to be with the build.gradle file under app. With a simple addition of a line:
compile 'com.android.support:appcompat-v7:19.1.0'
the gradle was reloaded by Android Studio and the project fixed, all proper references recognized. Thank you to the answerer!

You have to add the following dependency in your build.gradle (Module App)
dependencies{
compile 'com.android.support:appcompat-v7:19.1.0'
}
It should solve your problem.
In order to ignore gradle error while importing Android Studio Projects, follow the following steps:
Suppose you want to import a project Named: MyProject1
Copy the Project from its directory and paste in an empty folder (MUST BE EMPTY).
Make sure you have closed the MyProject1 from Android Studio by clicking Files>>Close Project
Click on the Open an Existing Android Studio Project
Locate the new directory, where you have pasted the MyProject1 folder.
Recheck if "MyProject1" folder itself contains the "MyProject1" folder then it will not work.
Now select the MyProject1 folder and go ahead.
It will start the gradle build.
After successfull build the you can start refactoring.
NOTE :You have to copy the folder that contains the following files only:
For my case I am importing Bdjobs Projects.

Related

Android Studio project doesn't recognize some classes

Recently my project got messed up. I don't know how it became like this. There was no power failure or anything happened while using Android Studio. Next day I opened my project and now it's a full mess. I attached the images of how they look now.
Classes are not recognized as you can see they have .java extension showing and when I opened one of them it show like below. but if I opened the file directly from notepad or something the source-code of these files are not changed.
I did delete .idea all .iml files inside the project then invalidate & restart build project again. But no luck, no matter what I did it doesn't get resolved. I have an old backup of this project and not a recent one, so I want to get this fixed .
I tried opening my other projects and they work very well. The problem seems to be only in this project. Android Studio is updated to last version before this problem persisted. So it's not also a bug in Android Studio.
This is how the Java file looks when I opened with Notepad++. The code didn't disappear, no I also didn't write xml code in my Java file:
I just had to copy all the source code in .java files back into android studio editor, which the files are with .java extension. Problem solved
I have same problem occur few days ago, solved by below steps
uninstall android studio,
download latest from link
delete all file from default android studio folder
(C:\Program Files\Android\Android Studio)
install new downloaded android studio , all worked well.
I had a similar problem, but with Kotlin files.
What worked for me was shortening the file name by a few characters (but not the class name).
I suspect that there's a limit to the length of the path which can get quite long if you try to organise a large(ish) project using subfolders.
If you have just created a new package directory inside your project and moved class files from the project into the package directory you just created you will get this error.
To avoid it. Instead of moving class files, copy them and next build your project. Very important this part to build the project.
Next you need to delete the duplicate class files outside the package (Can't use safe delete for this)
And finally you need to change the imports on all affected class files to reflect the new namespace / location. My suggestion is to use "replace in path" from the Menu Edit > Find

Android Studio doesn't recognize my imported Github project

Ok, so I decided to import my github project into my other machine on AS. The problem however is that AS seems to completely forget it's an Android project and treats the project as a simple directory. I can't build, rebuild or even run my project. Additionally my file structure is gone.
I've tried importing based on external models but my Android Manifest can't seem to recognize my strings resource folder either. So importing is out of the question.
Any help is appreciated thanks.
It's because you're missing a lot of the files that AndroidStudio creates with you start a new project.
A simple way to fix this will be to create a new project with the same name, package name, all that, and then just copy over your app folder.
When you reopen the project it will recognise it.
this happened to me due to that the file called build.gradle and other similar files wasn't in the root directory like when I opened my imported project I see these files :
but it should be like this :
so I navigated to the directory that contains the files in the above photos and imported that file as an android project and I succeeded, but there may other reasons for your problem , so you should clarify.
You do not have a build.gradle in the root folder of the project, maybe that is the reason.
Without the build.gradle file android studio cannot perform a correct import of the project.

Android Studio: Android Manifest doesn't exists or has incorrect root tag

I got this error on Android Studio (AS):
How I got it:
I created an AS Project from scratch and everything was fine.
Then a popup showed up, and (if I recall correctly) was saying something like: "Android Framework detected". I pressed "Yes' and some changes happened to the project/module. And after that I got the above error
Edit:
In my case the problem was not Gradle related. It had to do with IntelliJ/Android Studio configuration, an .iml file in particular.
I realized that after reading this informative post here.
On Android Studio v0.8.2 clicking on Sync project with Gradle files button solved my problem.
update
Thanks to the comment of jaumard. If the Sync project with Gradle files it's not visible you have to open the Gradle panel and click sync icon on top the toolbar.
Just call (in any case) File -> Invalidate Caches and Restart....
In my case:
settings.gradle file was empty. I added defualt code:
include ':app'
Then I clicked
Then project start works.
Double check that under project structure / module / Manifest file it points to the correct manifest file in your code and not the one in generated sources.
This is true for both Android Studio and Intelli J. Sometime when you import project from existing sources it prefer the manifest file inside the generates sources directory.
What helped for me was:
delete .gradle/ folder
delete .idea/ folder
delete ****.idea*** file
reopen Android Studio
import from gradle as Android Studio then suggests
I ran into a similar problem. Looks like my .../src directory for whatever reason moved under my .../lib directory. I moved it out of the /lib directory. Now both /lib and /src are at the same level. After a couple of clean rebuilds and restarts of Android studio everything is back to normal. My emulator started up fine.
You might want to check your directory structure. Compare the directory structure with a working project. You might be able to see the difference.
Moving my AndroidManifest.xml to PROJECT_NAME/src/main fixed the issue.
I had the same errormessage and noticed I had 2 MYPROJECTNAME.iml files, but with a different casing of MYPROJECTNAME. I created this situation after checking out from SVN the project into a directory with the casing error.
Just throw away the IML file with the wrong casing, after saving the content of both and use the content that works
I had this problem with a multi-module project when I renamed the app module. In my case to solve the problem I had to manually update the app module name in the project's settings.gradle file (Android Studio didn't update that value)
Happened to me. Found that i had wrongly opened the parent folder of the actual project in Android Studio.
In my case, it was my AndroidManifest.xml file, it was all messed up due to a new library that I added in my build.gradle.
So I took the AndroidManifest.xml from my latest commit on Git and I replaced it the current one, and also my settings.gradle was empty so I added include ':app'.
Hope it helps, and happy coding !
Facing same issue, resolve after adding the missing build.gradle file in root project.

Android Studio cannot resolve R in imported project?

I'm trying the new Android Studio. I've exported a project from eclipse, using the build gradle option. I've then imported it in Android Studio. The R.java file under gen has a j in a little red circle on it. And in my source files, I get "cannot resolve symbol R" wherever I have a reference to a resource, e.g. "R.layout.account_list" etc.
I have never used Intellij before. Would appreciate any help as there obviously aren't many answer yet about Android Studio. Thanks!
Press F4 into Project Structure, Check SDKs on left
Click Modules ---> Source Tab, check gen and src as sources
PS: The answer over a year old and the menus have changed.
File -> invalidate caches
then
Restart application
None of the answers on the web so far have helped. Build > Make Project did not work for me. For me it was as simple as choosing this other option (on Android Studio 1.3.1):
Build > Make Module 'module name'
In my case I had an Activity file imported from Eclipse that had the line:
import android.R;
So all of my R classes were resolving to the SDK, as soon as I commented out that line everything compiled correctly to my package. I only noticed the issue when I was moving the project from my Mac to my Windows machine.
This issue starting occurring for me when I started working with build.gradle to incorporate the data necessary (signingConfigs) to build a signed .apk. After what appeared to be a successful build from the command line, I discovered that going into any class using R.* that all R.* references were unresolved.
The answers here didn't help me. I decided to re-import the project and it magically fixed the issue. File/Import Project... and select the build.gradle file in my apps root folder. I would love to know why re-import fixed this :)
This is probably due to a failed resource build
Once the issue is fixed, a mere Build > Rebuild Project will do the trick
Goto File -> Settings -> Compiler now check use external build
then rebuild project
I've been frustrated on many occasions with this problem, especially when intergating a project library as part of another project. In the most recent occurrence of this plagued problem, my Android lib project was using a WebView. It turns out that Gradle builds the R.class file in a sub directory called "web" whose path does not have anything to do with my source code path. When I imported this, my problem was gone. What have I learned? In the future, simply do a file search for R.class and note the path where it is located. Then import the package into your code using that path. It really sucks that you have to manually perform this. Gradle should automatically import packages it generates.
I was also facing the same issue and I went through lot of answer on stackoverflow. Then i found one solution which help me resolve this issue.
Check package name in AndroidManifest.xml file. I forgot to change it while copy pasting another project into new project.
At first check if there is import android.R; in top of your class this happens when auto import in enable in android studio.
after that comment all lines of your code that you use R variable (you can comment entire class or ...)
then run application it regenerates R variable and you can uncomment your code.
Here's what worked for me in IntelliJ (Not Studio), in addition to the replies presented above:
You need to attach an Android facet to an existing Android module. To do this, select the module from the module list in 'Module Settings', hit the '+' button on top and select 'Android'. See https://www.jetbrains.com/idea/webhelp/enabling-android-support.html.
The solution is to open project structure window. [by press command+; on mac ox s. i don't what's the key shortcut for other platforms. you should be able to find it under "File" menu.]
and click "Modules" under "Project settings" section, then your project is revealed, finally mark the generated R.java as Sources.
I am using Intellij idea 14.0 CE.
The generated R.java is located at build/generated/source/r/debug/com/example/xxx
Really not easy to find for the first time.
Follow the five steps below:
Step 1 ===>Delete(CTRL X) the additional tag(s) in XML manifest file.
Step 2 ===>Open Build-->Clean project.
Step 3 ===>Open XML manifest file and past the last additional tag(s) like:
Tag Manifest file example:
(<uses-permission android:name="android.permission.VIBRATE"></uses-permission>)
Step 4 ===>Step 2 again.
Step 5 ===> Open Tool-->Android-->Sync project with 'Gradle'.
I have had the same problem but after all the steps it's work for me.
On IntelliJ 14
Check if the generated sources are excluded. Usually in Project Structure -> [module] -> Paths -> Compiler output: "Inherit compile output path"
My problem was that I had file 'default.jpg' in drawable folder and for some reason every resource was not resolved. Fixed after deleting that file!
You should check all your files if it don't have errors and again rebuild your project in:
Build > Rebuild Project.
Or in:
File > Settings > Build, Execution, Deployment > Compiler
Check use external build and after rebuild the project.
After you tried Clean and Rebuild without success, check your res folder for corrupted files.
In my case a corrupted .png file caused all the trouble.
Regarding the following, from Crossle Song's answer
Press F4 into Project Structure, Check SDKs on left
Click Modules ---> Source Tab, check gen and src as sources
Despite the message "We will provide a UI to configure project settings later....etc" this worked for me.
None of these answers helped me!
My problem was not a problem! The program could compile completely and run on the device but the IDE has given me an annoying syntax error. It has underlined the lines of codes that included "R.".
The way that I could solve this issue:
I just added these three classes in "myapp/gen/com.example.app/" folder:
BuildConfig
package com.example.app;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
Manifest
package com.example.app;
public final class Manifest {
}
R
package com.example.app;
public final class R {
}
I solve that problem setting JAVA_HOME, CLASSPATH.
People sometimes skip JAVA_HOME and CLASSPATH when setting Java_path.
So try to check Environment Variable.
CLASSPATH -> .;
JAVA_HOME -> C:\Program Files\Java\jdk(version) or where Java installed
and then check the xml file which can have error(Do not naming well-known things such as button,text etc)
In my case (Linux, Android Studio 0.8.6 ) the following helps :
File > Project Structure > Modules > select main module > select its facet > Generated Sources
change value of "Directory for generated files:"
from
MY_PATH/.idea/gen
to
MY_PATH/gen
Without that code is compiled, apk is build and run successfully
but Android Studio editor highlights mypackage.R.anything as "cannot resolve" in all sub-packages classes
I had the same problem and got it fixed by deleting an extra library.
To do try this solution go to File > Project Structure (on a mac you can use the command "Apple ;")
Then select app on the left tab. Go to the dependencies tab and delete the extra library.
check the build tools version in build.gradle(for module app). Then go to android sdk manager see if the version is installed if not install it or change the build tools version to the one which is installed like below.
android {
buildToolsVersion "22.0.1"
..
..
..
}
The solution posted by https://stackoverflow.com/users/1373278/hoss
above worked for me. I am reproducing it here because I cannot yet comment on hoss' post:
Remove import android.R;
from your activity file in question.
My setup:
Android Studio 1.2.2
Exported project from one Mac to Git (everything was working). I then imported the project on another Mac from Git. Thats when it stopped resolving the resource files.
I tried everything on this thread:
invalidating cache and restart
Delete .iml files and .idea folder and reimport project
Clean and Rebuild project
Nothing worked except removing import android.R; from my activity java file.
To avoid this issue in the future add .idea folder to your .gitignore file. There is a nice plugin from git for gitignore in Android Studio. Install this plugin and right click in .idea > Add to .gitignore
just clean project and then sync your project with gradle file.
In my case, I found that "android.R.layout.account_list" was referenced instead of "R.layout.account_list". Simply remove "android." can fix the problem. Hope this help because sometimes you may overlook when you are too focusing.
In my case:
I had to Copy Reference the R file; i.e. right click gen/<package>/R and Copy Reference. Then paste that over the R in your code where it fails to resolve.
That solved it for me (after trying everything else here). Still not sure why it worked to be honest.
I had this same issue. The package name was wrong in two of the following three files. I manually updated the package name and everything started working again.
gen/com/example/app/BuildConfig.java
gen/com/example/app/Manifest.java
gen/com/example/app/R.java
I'm not sure what caused them to change as I've never modified these files before.
Had this error when importing project from Eclipse. The reason was some of the xml files had errors. Check ALL your XML files for errors. Including androidmanifest.xml, and values, themes, styles, layouts folders, etc. Warnings in xml are ok, but errors will generate this error.
Afterwards, do a Clean Project and rebuild.
For me, with Android Studio 1.5.1, the solution was to recreate the whole project with a slightly different name.
I think it didn't handle the app name "Kommentator_AS", because several places the package was named"Kommentator" instead.

Missing AndroidManifest.xml when importing an old Android project into Eclipse

I have an Android project developed on Eclipse (GNU/Linux) that I last touched half a year ago. I am trying to import the project into Eclipse 3.6 on Windows (with ADT installed) installed using File -> Import Project in Eclipse. When the project is imported, I see the following error twice on the console:
[2010-12-10 02:17:12 -
com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper]
Unable to read C:\Program
Files\Android\android-sdk-windows\AndroidManifest.xml:
java.io.FileNotFoundException:
C:\Program
Files\Android\android-sdk-windows\AndroidManifest.xml
(The system cannot find the file
specified)
Why is Eclipse looking for AndroidManifest.xml on the Android SDK path? The file actually seems to be in the project's directory. How do I fix this problem and get the project to compile?
A simple solution is to either reimport the AndroidManifest.xml file or make a change to the file and save it. This worked for me.
If you see an error about AndroidManifest.xml, or some problems
related to an Android zip file, right click on the project and select
Android Tools > Fix Project Properties. (The project is looking in the
wrong location for the library file, this will fix it for you.)
from: http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html
The way you are importing the Android project into Eclipse is wrong. The Correct way of doing is File -> New Android Project. In the Contents Tab in "New Android Project", select "Create project from existing source" and choose the Build Target. That should fix your problem.
It appears that this error is produced because Eclipse thinks the default location for new Android projects is the Android SDK path. Even if the project location is changed, the error fails to be resolved, so the trick is to change the project location before Eclipse is aware of the condition generating the error.
To circumvent this quirk I imported the old project with the following steps:
File -> New -> Android Project
Un-check 'Use default location' and browse to project root directory.
Click 'Create project from existing source'
It's important to do step (2) before (3) otherwise the error persists and prevents running the project.
I had the same problem, all of the above did not work. I cleaned the project and it worked.
Instead of using File ---> New Android Project --> "Create project from existing sources", which will result in the error your are seeing, choose "Create project from existing sample" and choose it from the drop down. This will work.
Experienced JAVA developers tend to go with the first option which is normally there and works for classic Eclipse projects. But this is not your typical project and I bet the Google developers put this special case in the wizard to accommodate the differences.
I had the same problem. I was trying to compile the JakeWharton view page sample, so I checked out the GIT in a directory in a different folder then the workspace which caused the problem.
Eclipse was maintaining 2 folders:
1. A new workspace folder was made under the workspace directory, which eclipse checks for libraries and others source code including the AndroidManifest.xml file
2. The existing folder which was not under the Root workspace
To fix the problem after importing I had to manually move the files in the new workspace folder created by eclipse.
I met this problem when using Facebook SDK, now I solve it by doing this:
Close the project;
Copy "AndroidManifest.xml" file to the project's root path;
Open the project and refresh it, it's Done!
this worked for me by the way:
I changed the project name to the exact name of the project that I am importing.
Eclipse seems somewhat fragile in its naming conventions. One of the causes for this error is a difference between the project name and the folder name in the workspace. I imported a zip file for a project named "HelloDialogs" into a workspace folder named "HelloDialog". This caused the "AndroidManifest.xml file missing" error. Once I renamed the folder correctly, everything worked fine.
Because of the multiple different answers here, I thouhgt I'd add yet another one that worked for me, as I had exactly the same issue when first working with Phonegap android dev tools.
So I found (as mentioned by Gintautas in comments to the accepted answer), that I had to create a new project using the phonegap 'create' script, then when importing the project into eclipse. the only way to get this to work successfully was if the project was originally created in some temp folder somewhere other than the place I actually want to work with it.
So I created a project in windows like this in a cmd window...
c:\phonegap\phonegap-2.6.0\lib\android\bin>create.bat c:\temp\android_boilerplates\test app.test test
Then I imported the project in eclipse like this...
File > New > Project
Within the new project wizard select: "Android Project from Existing Code"
Click "Next"
Now navigate to the temp location of your project and set that to the root directory, check the project you want and check "Copy projects into workspace" as the example below...
Click "Finish"
And that's it, Eclipse should copy all your project files into your workspace and there shouldn't be any errors in your project (fingers crossed).
Your project should look something like this...
Hope that helps, it took me an age to work out why Eclipse didn't like creating a new project from existing code when the new project was being setup in the same place as the existing code. This isn't a problem for other languages I've used, so it was a little weird, but understandable as Eclipse (I'm guessing) seems to want to overwrite certain files.
Eclipse randomly decided to make another folder instead of the one that i had specified, but doesnt have any resources or data or layout etc in it..
it has some conflicts i guess..
anyway, a noob approach to this was, copying the original file to some other location(i put it to desktop)..
now create new project-create existing project, select this one from desktop, n VOILA.. its all fine.. :D
I am a little late to this game but I caused this same problem by generating the initial application into the exact location I was going to work on it. That is to say I put it directly into my current workspace. I then did File, Import, Existing Android Code Into Workspace. The import process blanked out my android.xml file.
I tried above solutions and had no joy. I then generated the initial application into a temp directory and imported from there. This worked for me.
The only way to import a project into eclipse workspace is to create an empty project and then drag and drop all the folders and files into this project. Why is this so is beyond me.
The answer from Raunak is wrong.
I found a .classpath file in the root directory of my Android project. I opened it and updated the file paths in it, and it seemed to fix the problem for me.
I had the problem when I tried to update an old project with recent code from the SVN. I had the Manifest.xml exported to my local file system as backup and deleted it. I've then reverted my complete project to the most recent version from the SVN and then it worked :)
This is what I had to do to get this to work. Fortunately I had backups of earlier "project".
1) Import the project as usual.
2) If the errors with empty xml etc. comes up, close the project.
3) Go to the original project if you have backup.
4) Copy all of the projects root files and directories and paste it over where Eclipse expects the projects root directories and files to be.
5) Open the project and refresh. Make "Clean" if necessary and you're done!
Always make backups because Eclipse f--kups! I learned this the hard way when suddenly my Android project refused to work because of empty manifest-file.
Sometimes if you automatically fix imports in MainActivity IDE imports android.R class instead of one that will be generated for the project. Remove the import and recompile.
when importing project from another workspace add existing project in workspace. and tick to the copy projects in workspace.then check the api level and supporting library from project.properties files.then rebuilt project and clean it.. it is works for me.
2017 Solution: Much Easier and tested solution is to remove your application folder from elipse project only then Import it again and the problem will be fixed immediately!

Categories

Resources