This is the most common error encountered while working with Android Eclipse ADT or Android Studio IDE. You get this error if R.class file is not generated under gen folder, this file is auto generated every time the build happens, if there is any error encountered while build you get R Cannot Be Resolved to a Variable.
There are many reasons that may cause this error. I am trying to list down as many reasons as I can to my knowledge.

1. R.java Class Import
Check if android.R import statements are present in any of your Java files under src folder, it is not required as R is static class, but many a time we do Ctrl + Shift + O which causes this import statement being added.
Eclipse somethings cries for these imports but just don't add them, the problem is due to some other stuffs like layouts or drawables.
2. Drawables
Drawables (images) or xml's contained here are the real culprits most of the times for such issues. You won't even see a red error cross displayed over the drawable folder (but if you clean and build your project you would find the error messages displayed under logCat console)
Check that images and XML files follows the below mentioned naming conventions,
- All file names must be in lower-cases
- Files under drawables must not contain any special characters other than _ (underscore)
- Files must not contain numeric values.

3. AndroidManifest.xml
If you have changed the package name for your app in the Manifest file, this may not generate R.class resulting in such a error. Make sure you clean and build.
4. Check Order of Export
Right-Click on you project
Project Properties
Java Build Path
Order and Export
5. Check if Android Target is set.
Right-click on your Project Folder.
Select Properties.
Select Android.
Check the box next to appropriate Project Build Target.
Click Apply and OK.
- Change Android Toast background color
- Maven : java.lang.ClassNotFoundException: Xmx512m
- This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView) Lint Error
- Android Alert Dialog with Checkboxes example
- Android Error Generating Final Archive - Debug Certificate Expired
- How to add Newline to text in Android TextView
- Read Text file from SD Card : Android Programming
- [FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException
- ActivityManager Warning: Activity not started, its current task has been brought to the front
- INSTALL_FAILED_INSUFFICIENT_STORAGE Android Error
- Android Developers Bluetooth Tutorial
- java.lang.ClassNotFoundException android.support.v7.widget.Toolbar [Fix]
- Android: Save Data in local Db using Android Room
- Channel 50 SMSes received every few minutes Android Phones
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Changing Android Intent Tittle using java code
- Android : No Launcher activity found! Error
- How to change TextView or EditText Text Color on Focus and on Press
- How to display Toast on Button Click : Android
- Android : Execute some code after back button is pressed
- Stop android adb service from command prompt or terminal
- [Soluiton] You already have the latest version of Android Studio installed
- Create Custom Android AlertDialog
- Android R Cannot Be Resolved To A Variable
- How to make Android EditText not editable
- 12 August - International Youth Day celebrated worldwide - News
- Your JBoss Application Server 7 is running However you have not yet added any users to be able to access the admin console - Java
- airbnb website and mobile App is down worldwide - clear browser cache or reinstall app to fix error - News
- Mac (macos) startup keyboard boot sequence combinations - MacOS
- Test internet speed using macOS Terminal command - MacOS
- zsh: command not found [fix] macOS - zsh
- How to install Postman natively on a Mac - HowTos
- Add blank lines after each lines using Notepad++ text editor - NotepadPlusPlus