Android Studio: R file not getting updated - android

Upon creating a new menu resource file, the auto-generated R file is not getting updated. This causes syntax error when I try to use it the following way:
getMenuInflater().inflate(R.menu.menu, menu)
Attaching a screenshot for more clarity.

in the new android, can sometimes unrecognized faulty Id in xml or file xml.
I have met several such cases.
My solutions are close and open the project. you can try it.
Hope can help you

You can just invalidate and restart android studio even if it keep asking ignore and just run it.

Related

"is translated here but not found in default locale" error in strings.xml with translatable="false"

Here is my values\strings.xml (the default file) and everything is self explanatory:
My question(s):
How can it be "not found in default locale" if I am editing the default locale (values\strings.xml)?
How can it be a lint translation error if I set translatable="false"? In the values-pl\strings.xml (and values-ru, values-iw folders as well) the strings don't exist even? it shouldn't anyway.
I can't seem to understand why I don't get the error for the Russian string.
(I would show the values-ru\string.xml or values-pl\string.xml here but there is nothing there of interest, since the strings are missing anyway...)
this happened to me too
I do 2 things:
Verify entire file to see another translate not done ( I have ones in file en but in pt-br)
Clean, update gradle and quit and restart the Android Studio
Rebuilding can take a long time. YMMV, but...
Simply remove the offending line and re-add it.
Worked for me. Very fast.
In my case this helped me:
Select the strings that cause error.
Cut them.
Paste them again
If it doesn't work for you, try adding the same strings to strings.xml(v21) file.
Press Invalidate Caches / Restart ... to restart android studio. It worked for me. Actually this happened when I had copied files from my other computer and pasted via file explorer.
I solved this issue by following below steps:
cleaning my project
rebuilding it
and finally pressing invalid caches/ Restart in file menu
If you just Clean Project it probably works. It worked for me.
I had the same error message, just with the weird issue that it was thrown in the default locale itself and all translations. Turns out you should not use dots in your name (e.g. name="bla.blub") because it will be internally converted to "bla_blub" and then it cannot match with "bla.blub", hence the error.
I only had to change the dots to underlines in the default locale and then all other errors in other translations (including dots in the name) were gone as well.
But be aware that other build tools can still create issues, so replace all the dots with underlines instead!
Quitting Android Studio and restarting it fixed it for me.
You simply just have to copy the offending line (or just one of the multiple of offending lines), remove it, and re-paste it. That removed the issue for me.
Just make sure that you have same naming conventions on all strings files including the same capitalization.
let's say if you have "sign_in" in strings.xml and "sign_In" in your fr/string.xml, so it will give you error on fr/strings.xml like "is translated here but not found in default locale". So, when you edit to "sign_in". The error will remove.
I was having this problem for all the strings in my xml file.
The thing is, your default strings.xml shouldn't have a tools:locale attribute as the other translated files have. If it does, whenever I compile the app in release mode, it treats it as another translated file.
I've created a tool to manage the translation status of android apps.
It not only tells you what strings are missing on the other languages, but it can also report, and clean the left over strings that you may have deleted on your default translation file.
https://github.com/gubatron/android-missing-strings
To clean all left overs in other languages invoke like this
./ams --cleanleftovers -o all.txt
This will clean the left over strings and it will output the missing strings report for all the languages into the all.txt file
Copy and paste didn't work for me.
I also tried Clean and restart, the previous error was gone but new entered strings still have new errors occur.
I tried closing the opened strings.xml file and Translations Editor, then restart.
strings.xml file and Translations Editor
That works for me.
Well, in my case, this happened when there was a format error with the previous string of the string that's being reported. Unfortuantely that format error was not reported. Correcting the format error solves the issue.
Add this,It will work
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ExtraTranslation">
Press double shift for open Translations Error and then check and uncheck in Untranslatable column the item with error.

how to add action buttons in android app

i m having problem in action buttons for my app. i did as per the tutorial from http://developer.android.com/training/basics/actionbar/adding-buttons.html but i get a red underlined error telling there is no file action_search in R.id and no methods openSearch() and openSettings() i fixed this by manually creating the methods and the action_search file and the app run on my device but the search button doesnot works and i now i cannot delete the action_search from R.id plz help
Have you tried running a clean on your build? Whenever you have issues with R. related things try to clean so the resources get rebuilt. This can sometimes be caused by copy and pasting chunks of code around...

How to add menu in Android without getting "R" error

I am writing a simple application to get familiar with android programming. Today I want to play with menus. I follow this page!. I first create "menu" folder under "res" and then add "game_menu.xml" in it. However this "R" thing can't get that folder. I tried some refresh to get it 'auto-generated' but it didn't work. I clean for a rebuild, but this time R.java completely dissappeared. How can I make eclipse to recreate R or what is the problem?
Are you sure the R is not creating the appropriate link for the menu?
To find your xml menu, you must type: "R.menu." & hit ctrl+space and all your menu's will pop up.
Try this way.
And if you want to check your R file, if its creating the menu link, search for:
"public static final class menu" in R file
In that class you will find your xml menu's..
are you able to compile ? Check which R you have imported in your code. It should not be the android.R but the one from your project
You have most likely misspelled something in your xml file, or have some other error. If the xml files are not entirely correct (or other resource files), the R. file cannot be built. Go through the file and make sure that everything is error free.
A common mistake is to name the resources with capitals, although the names can only contain small letters.
another common mistake is to use unsupported folder names.

Type R is already defined error

How do I fix this? I already tried removing the R.java and cleaning the project via eclipse, but it doesn't help.
FYI I am trying to get PhotoStream from here: http://code.google.com/p/apps-for-android/, but so far it has been very difficult to get things work.
Okay..... 5 mins later google tells me the correct answer...
http://www.fairtec.at/en/it-blog-mainmenu-16/168-the-type-r-is-already-defined
I just didnt search hard enough.
"The type R is already defined"
That's the message you get in Eclipse if you try to build the Funambol Android Sync Client.
Reason is that you have checked two Builders that try to generate the same class.
You just have to uncheck the Java-Builder from Project->Properties->Builders.
Then the application even works fine in the Emulator.
Delete the R.java from the src folder and rebuild the project. This file will be automatically rebuit during this process.
http://www.fairtec.at/en/it-blog-mainmenu-16/168-the-type-r-is-already-defined
click right to project click properties
Project->Properties->Builders.
unckeck java Builder
delete file R.java
You may want to change your package names. It looks like you are using a 'PhotoStream'.jar which has it's R.class defined at the same package structure as you.
Here is a link to the R.java from the project on Google Code. Notice you are using the same package:
http://code.google.com/p/apps-for-android/source/browse/trunk/Photostream/src/com/google/android/photostream/R.java?r=83
I had the same issue when I imported a project from work. Turning off the Java builder as suggested in the article you found fixed my problem, but when I made code updates they were not reflected in the running app. In my case there was an R.java in my source which I deleted and that fixed my problem.
In my case,
as i m not using any IDE for programming but using command line Android..
i had two xml files, one in layout and other in layout-land. i was using same id "XXX" for both but while declaring i made small mistake
android:id="#+id/XXX" (in layout xml)
android:id="#+id/XXX " (in layout-land xml)
please observe extra space in second id declaration, so while creating R.java they were different and in R.java i had
public static final int XXX=0x7f040046;
public static final int XXX =0x7f040045;
which are same, so please be aware of extra spaces. Thank you

Android DDMS exceptions?

As i'm new to android, i really couldn't understand the errors or execptions shown in the android DDMS,I'm using Eclipse ..
Can anyone please share some very frequent exceptions that appear in DDMS and how to handle them......
We should explain exceptions here for you? Maybe you should try to read the name of the exception... most of them are named understandable. And the very first thing you should do to learn about exceptions is to read their documentation: the very famous one for example: http://developer.android.com/reference/java/lang/NullPointerException.html
If that didnt help, try to search with google or here on StackOverflow...
If you opened any xml files, this error shoud occur. Close all xml files of your application.
I'm not certain but I'm also having the same problem. I believe it occurs when you try to call something that is out of context. For example if you tried to call
TextView myTextView= (TextView)findViewById(R.id.myTextView);
when you had set a contentView as something that did not contain 'myTextView'
Hope this helps!
I think this type of error occurred when you have edited the .xml file and rebuild the project.
If you have opened any xml files, save all the .xml files and Close all xml files of your application.
and run the project. this way i run my application when this type of error occurred.

Categories

Resources