Package r does not exist android studio ошибка

TL;DR, if you get the error «package R does not exist», possible reasons are

  • some error in the XML resource files
    -> fix XML errors
  • the current package is different from the R package (see package
    attribute in AndroidManifest.xml)
    -> import R class, e.g. import com.example.android.R;
    -> or use the appropriate package in your source, e.g. package com.example.android;
    -> or change the package attribute in AndroidManifest.xml to
    <manifest xmlns:android="..." package="com.example.android" ...>, if that’s appropriate
  • the used R ids are from the system resources
    -> do not import android.R, but prefix the offending ids with android., e.g. android.R.layout.simple_list_item_2
    You may import android.R instead of prefixing the ids of course, but then you cannot import the application R class anymore and must prefix the application ids, e.g. com.example.android.R.id.main_menu.

The R class is generated automatically from the application’s
resources. It contains the ids for these resources and is contained
in the package named in the
<manifest>
tag in the corresponding AndroidManifest.xml file.

If there are no errors in the resource XML files, the R.java source
will be generated in a package subdirectory below gen/ and compiled.


There is another R class located in the android package. This android.R class contains some nested classes, which in turn contain ids and other values for system resources.


To use a class in Java, you must name the class with the whole
package, e.g.

java.util.List<Object> list = new java.util.ArrayList<Object>();

or import the class and then use it without package

import java.util.List;
import java.util.ArrayList;
List<Object> list = new ArrayList<Object>();

You can also use a class without naming the package, if both the
current class and the used class are in the same package, e.g.

package com.example.android;
public class A {
    /* ... */
}
package com.example.android;
public class B {
    public void useA() {
        A a = new A();
    }
}

TL;DR, if you get the error «package R does not exist», possible reasons are

  • some error in the XML resource files
    -> fix XML errors
  • the current package is different from the R package (see package
    attribute in AndroidManifest.xml)
    -> import R class, e.g. import com.example.android.R;
    -> or use the appropriate package in your source, e.g. package com.example.android;
    -> or change the package attribute in AndroidManifest.xml to
    <manifest xmlns:android="..." package="com.example.android" ...>, if that’s appropriate
  • the used R ids are from the system resources
    -> do not import android.R, but prefix the offending ids with android., e.g. android.R.layout.simple_list_item_2
    You may import android.R instead of prefixing the ids of course, but then you cannot import the application R class anymore and must prefix the application ids, e.g. com.example.android.R.id.main_menu.

The R class is generated automatically from the application’s
resources. It contains the ids for these resources and is contained
in the package named in the
<manifest>
tag in the corresponding AndroidManifest.xml file.

If there are no errors in the resource XML files, the R.java source
will be generated in a package subdirectory below gen/ and compiled.


There is another R class located in the android package. This android.R class contains some nested classes, which in turn contain ids and other values for system resources.


To use a class in Java, you must name the class with the whole
package, e.g.

java.util.List<Object> list = new java.util.ArrayList<Object>();

or import the class and then use it without package

import java.util.List;
import java.util.ArrayList;
List<Object> list = new ArrayList<Object>();

You can also use a class without naming the package, if both the
current class and the used class are in the same package, e.g.

package com.example.android;
public class A {
    /* ... */
}
package com.example.android;
public class B {
    public void useA() {
        A a = new A();
    }
}

R.java is very important in android application development. It is used to identify all resource data such as id, layout, image, drawable resource, etc. R.java is generated by android studio automatically. But it is sometimes confused for developers to use it. This article will help you to resolve these problems about R.java you may encounter.

1. Where R.java Is Saved At?

  1. R.java is commonly saved at directory like \Example\app\build\generated\source\r\debug\com\dev2qa\example\image.
  2. You can also find it in the android studio left side Project view list like Example/app/build/generated/source/r/debug/com.dev2qa.example.image/R.class.

2. Why Can Not Find R Class In Android Studio?

  1. This is because you select the wrong subview in the android studio Project view. You can change the project view’s subview as following.
  2. Click the ” View —> Tool Windows —> Project ” menu item in the top menu bar.
  3. The above action will show the Project view in the android studio left panel. At the left top in the project view, there is a drop-down list where you can choose the project view’s subview.
  4. Choose Project in subview drop-down list, then you can see all the folders under the current project will be listed at below panel. You can find the R class in the directory tree also. If you choose other subviews, it will display different content of that subview.

3. What Data Is Saved In R.java?

  1. Double click the R.java file, it will display its content in the right panel. The source code includes a lot of int-type variables, each int variable refers to one resource in the current android application.
  2. You can find there are some inner public static final classes defined in R.java also, each inner class represents one kind of resource such as id, layout, string, color, drawable, etc.
  3. You do not need to care about those int variables and their values. And do not edit them also. If you change the value, you may encounter some strange error when building the android project.

4. How To Resolve Package R Dose Not Exist Error?

  1. Sometimes you may encounter strange errors about R.class. Such as package R dost not exist, R can not be resolved as a type. You can fix these errors follow the below steps.
  2. Click ” Build —> Clean Project ” or ” Build —> Rebuild Project ” in the top menu bar in android studio. This will let android studio regenerate R.java again. It will clean the cache and include all newly added resources.
  3. If the above method still does not take effect, you should check your AndroidManifest.xml file carefully. You need to make sure that the package value in the AndroidManifest.xml root XML element matches your activity package.
  4. In my example, the manifest root XML element’s package value is com.dev2qa.example and the launcher activity class is in package com.dev2qa.example.image. So after changing the package value, the error is resolved.
  5. If the error still exists, you should check AndroidManifest.xml carefully to find the potential code that may generate the error. Or you may need to restart android studio or even your computer to fix it 🙂

Home » Android » Android Applications » How to fix – error: package R does not exist

When I was compiling one of our previously written android application, I got following error,

error: package R does not exist

This is because, in our app’s MainActivity we were using a code as below,

btn = (Button) findViewById(R.id.btn);

Solution :

The right solution to this error is to import the Resources’s class i.e. R as,

import your_package_name.R;

For example, our application’s package name is “com.demoapp.clickbutton” so we have to import R class as,

import com.demoapp.clickbutton.R;

Related

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Package is not in goroot ошибка
  • P3908 ошибка daewoo winstorm
  • Pack file manager ошибка
  • Pab ошибка zanotti
  • P830 ошибка нива

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии