Heraj Mishra
Heraj Mishra

Reputation: 21

R.java missing, R cannot be resolved to a variable, even if no mistake in xml files

I am new to android, started my programming basics. I am getting error as "R cannot be resolved to a variable" and R.java file is missing even i have cleaned my project and buid it automatically. Please tell me possible answer.And every time it shows the error that R cannot be resolved to a variable. Why it is happening.

My xml file:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

My activity file with the code is shown below.mainAvtivity file:

package com.bis.databasedemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.R;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);       
}}

and My Manifest file is here with the following code. look every code and give me possible reply for that as soon as possible:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bis.databasedemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.bis.databasedemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

please have a look and tell me reason why such error is coming instead of not any mistake in xml file and even after cleaning project again and again and no any sdk issues also in my eclipse then why still same thing R cannot be resolved to a variable. Thanks in advance.

Upvotes: 0

Views: 1657

Answers (4)

ishu
ishu

Reputation: 1332

Remove the Import R file from the Java class:

Import Project R.java File

Make sure your dimen XML is available in your project.

Upvotes: 0

androider
androider

Reputation: 36

Just delete this line from your java file,

import android.R;

and add this line at that place ,

import com.bis.databasedemo.R;

Hope this will help you.

Upvotes: 0

henry4343
henry4343

Reputation: 3921

  1. clean project
  2. check out your others xml file
  3. check out your drawable folder

Make sure your all xml file are correct and clean project is a good method. XML file don't allow upper case letters

Upvotes: 0

Avijit
Avijit

Reputation: 3824

I found this happening to me with a broken layout. No need to be worry. I am trying my best to giving you the solution

Solution

Make sure that anything the R. links to is not broken. Fix all errors in your XML files. If anything in the ADKs are broken, R will not regenerate.

If you somehow hit something and created import android.R in your activity, remove it. Run Project -> Clean. This will delete and regenerate R and BuildConfig.

Make sure Project -> Build Automatically is ticked. If not, build it manually via Menu -> Project -> Build Project .

Wait a few seconds for the errors to disappear.

If it doesn't work, delete everything inside the /gen/ folder

If it still doesn't work, try right-clicking your project -> Android Tools -> Fix Project Properties.

Check your *.properties files (in the root folder of your app folder) and make sure that the links in there are not broken.

Right-click your project > properties > Android.

Look at the Project Build Target and Library sections on the right side of the page. Your Build Target should match the target in your AndroidManifest.xml. So if it's set to target 17 in AndroidManifest, make sure that the Target Name is Android 4.2. If your Library has an X under the reference, remove and re-add the library until there's a green tick. This might happen if you've moved a few files and folders around.

What to do if R doesn't regenerate

This usually happens when you have a broken xml file.

Check errors inside your XML files, mainly within the /res/ folder

Common places are /layout/ and /values/ especially if you've changed one of them recently

Check AndroidManifest.xml, I find that often I change a string, and forget to change the string name from AndroidManifest.xml.

Check that Android SDK Build-tools is installed. Window->Android SDK Manager->Tools->Android SDK Build-tools

Make sure when you update the Android SDK Tools, you also update the Android SDK Platform-tools and Android ASK Build-tools. Build fails silently if they don't match.

If you can't find the issue, right click /gen/ -> Restore from local history... -> tick R.java -> click Restore. This doesn't solve the problem, but it will clear out the extra errors to make the problem easier to find.

Hope it will help you. :)

Upvotes: 1

Related Questions