Where is the R.java file in Android Studio?
Based on the new stable release of Android Studio (3.6) we have:
So, now to find your generated resource classes you need the following steps:
1) Open your project.
2) Go to your module build path.
3) Open the outputs/apk/debug/app-name-debug.apk file.
4) Choose your classes.dex file.
5) Look at the down placed area and go to your full package path.
6) You can see all bytecoded resource classes. So, scroll down to what you are looking for.
7) Expand the resource class you need to proceed (for example, let it be R.id)
8) Go to you id's.
That's it.
UPDATE:
If you would like to see actual id integer number you should follows steps below:
1) By (7) Go to the resource class you need to proceed and right click to show the context menu
2) Choose "Show Bytecode" to see the flexible dialog "DEX Byte Code for R$id", for example, for id class
3) Scroll down to the actual id to look its number
classes2.dex
and classes3.dex
for your package. If you search an id
, probably you won't find it there, because it can belong to another package. See https://mcmap.net/q/329083/-where-is-the-r-java-file-in-android-studio for a short way. –
Kinchinjunga classes2.dex
, and classes.dex
didn't contain my app package at all –
Cherriecherrita resources.arsc
in the APK gave me a table with the type of resource (id, drawable, color, attr, etc) on the left and on the right the ID shown in the Crash and the Name of the resource. –
Sandstrom Although the current Android Gradle Plugin doesn't generate a R.java
anymore you can still inspect the corresponding class file (see Sergey V.`s answer).
However, if you (like probably in most cases) just want to look up the generated IDs for your resources, there is an easier way:
In the project pane on the left hand side switch from Android to Project view using the drop-down at the top. Then navigate to app/build/intermediates/runtime_symbol_list/<insert build type here>/R.txt
. This file lists all IDs generated by AGP during the build process.
int drawable bonus_item 0x7f0800f1
. –
Kinchinjunga stable_resource_ids_file
does. –
Rouvin SingleArtifact.RUNTIME_SYMBOL_LIST
reads: Added in 8.3.1... which kind of contradicts the date of your answer. –
Rouvin I use Android Studio 3.3.2
\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\android\support\constraint\R.java
not_namespaced_r_class_sources
folder in AS 3.6.1 –
Frances As noted above, "The new Android Gradle Plugin generates the corresponding bytecode directly and does not make the intermediate R.java file".
Using the ubuntudroid solution you can find an id
also this way. Find R.txt
and copy absolute path. Project > app > build > intermediates > runtime_symbol_list > debug > R.txt. Then right click and select Copy Path...
, 1. Absolute Path Ctrl+Shift+C
.
This way you will obtain a path to R.txt
, for instance, "C:\Users\user\AndroidStudioProjects\your_project\app\build\intermediates\runtime_symbol_list\debug\R.txt". Copy the path without R.txt
to a text file for future references, for example, with Notepad++.
Press Ctrl+Shift+F to find in directory. Insert an id
and the path.
== Old answer ==
Change a project view from Android
to Project
or Project Files
. Find one of these two files.
Then you can revert back to Android
view.
I use Android Studio 2.3.3. The R.java
file is shown in the picture above.
In the left upper side, there is a select list. Select the [project]
option so that you can see all the folders and files.
R.java
is the generated file by ADT or Android studio. It will be located under app\build\generated\source\r
directory.
./app/build/generated/source/r/debug/android/support/v7/appcompat/R.java
./app/build/generated/source/r/debug/your/packagename/name/R.java
R.jar that you can actually unzip resides in app build folder, as follows:
jar -xf R.jar
I am using Android Studio 2.2.3 , the R.java file is shown in the picture below. Goto in the left upper side there is a selecting list ,
- select [package]
- Open "App Folder"
- com.example.saeedanwar.myapplication;
- r
If you're using Mac or Linux, try the following command line on your terminal:
find . -name "R.*"
It will print something like:
./app/build/intermediaries/runtime_symbol_list/debug/R.txt
./app/build/intermediaries/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar
This answer will be in a constant state of flux until Android standardize a method of matching their annoying decimal/hexadecimal id references to a tangible resource such as my_layout.xml.
For Android Studio Dolphin | 2021.3.1 Patch 1 have a look at this file:
/project/package/build/intermediates/stable_resource_ids_file/debug/stableIds.txt
It is produced by RUN (not just BUILD). Sample:
layout/mtrl_picker_header_fullscreen = 0x7f0d00de
string/cancel = 0x7f1101f0
style/ThemeOverlay.MaterialComponents.MaterialCalendar = 0x7f1202f3
id/gpxBtn = 0x7f0a0346
Project/app/build/generated/source/r/debug/com.android.'projectname'/R.java
--The R.Java that contains your xml layouts and views id's in Android Studio 3.5.3 -- Project/app/build/generated/not_namespaced_r_class_sources/debug/r/com/"your package"/R.java
Nowadays, the AGP generates R.class
files directly and there's no R.java
out-of-the-box. But we can decompile the class files to get a glimpse of R.java
's former structure. Note that this method won't show the actual resource IDs, but some of the other answers cover that bit. The steps below are tested on Android Studio Hedgehog | 2023.1.1
.
- Locate
R.jar
(there may also be arelease
folder):
- Right-click the file (or the
debug
folder) and from the pop-up menu chooseOpen In -> Terminal
. - Execute, from the terminal,
jar -xf R.jar
to extract the folders into cwd, which will give you something like this:
Double-click the
R
class above and it will open in the editor as decompiled code.(Optional) remove the newly extracted folders because they will become obsolete when you continue working on the project.
© 2022 - 2024 — McMap. All rights reserved.