In Android applications what is the role of "R.java"?

28,987

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.

Share:
28,987

Related videos on Youtube

pawarrohit14
Author by

pawarrohit14

Updated on July 30, 2022

Comments

  • pawarrohit14
    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
      J Collins over 11 years
      Would 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
      Nick almost 11 years
      I agree it is a worthy question. However, it is a duplicate: stackoverflow.com/questions/10004906/…
    • BrainSlugs83
      BrainSlugs83 almost 11 years
      Then it should be closed as a duplicate instead. Instead it's closed as "not a real question", which is just plain wrong.
    • starriet
      starriet over 3 years
      yes, 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.