In Android applications what is the role of "R.java"?
Solution 1
Every application uses resources such as strings, drawbles, layouts, and styles. Instead of hard coding such resources into an application, one externalizes them and refers to them by ID. The R.java file contains all those resource IDs, whether assigned by the programmer or generated by the sdk.
Solution 2
R.java is where you have access to anything you have in your resources:
- Drawables
- Layouts
- Strings
- Arrays
- ....etc
You can read more here.
Solution 3
R.java is autogenerated on build. It's content is based on the resource files (including layouts and preferences).
When you delete it, it gets recreated, but if you create your own, you will get into trouble as the build system will not be able to replace it.
Related videos on Youtube
![pawarrohit14](https://i.stack.imgur.com/b14Ol.jpg?s=256&g=1)
pawarrohit14
Updated on July 30, 2022Comments
-
pawarrohit14 almost 2 years
Android applications have an automatically generated file called "R.java". Please explain its purpose.
E.g.
- What is contained in it?
- What generates it?
Duplicate: What is the concept behind R.java?
-
J Collins over 11 yearsWould have to disagree with the closure reason, I came with this exact question also. I feel it perfectly valid to ask high-level questions of purpose of elements of application architecture, especially those that are automatically generated. If we restrict questions to only those with specific detail, we miss the opportunity to provide introductory information to new users. Additionally the question has been viewed many times and has an accepted answer, validating its purpose.
-
Nick almost 11 yearsI agree it is a worthy question. However, it is a duplicate: stackoverflow.com/questions/10004906/…
-
BrainSlugs83 almost 11 yearsThen it should be closed as a duplicate instead. Instead it's closed as "not a real question", which is just plain wrong.
-
starriet over 3 yearsyes, this question is quite broad, but it's a valid question. Also, it's not even a duplicate. Those two questions are different, from different background knowledge and perspective.