import android.R in Eclipse : Why?

An excerpt from the documentation :

Eclipse sometimes likes to add an import android.R statement at the
top of your files that use resources, especially when you ask eclipse
to sort or otherwise manage imports. This will cause your make to
break. Look out for these erroneous import statements and delete them.

  • HAXM configuration in android studio
  • Eclipse runs debug mode even when I click “run”
  • How to know if Android TalkBack is active?
  • Retrofit2 + SimpleXML in Kotlin: MethodException: Annotation must mark a set or get method
  • What version of support library is installed in my Android Studio
  • Smartcast is impossible because propery has open or custom getter
  • My question : WHY? Why does eclipse keep on doing this?

    I have been developing Android applications using Eclipse for a quite some time now but I have never been able to understand why eclipse does such a thing.

    When I use Ctrl + Shift + O to organize my import statements, import android.R gets added automatically. And all of a sudden my correct code is suddenly covered in red errors, saying that R cannot be resolved. It can get really scary for a beginner as he has no idea what he did wrong.

    In another scenario, suppose there is something wrong with my layout files and is not being generated, it says that R cannot be resolved, as has not been generated due to the errors. As I move my cursor to any of the errors, it suggests me to import android.R.

    After working on Android for quite sometime now, I know that never to import android.R, but what I have never been able to understand why eclipse keeps on suggesting it, as frankly speaking, adding import android.R never solved any problem of mine. It just added to the existing problems, which used to be really painful during initial days of development.

    So, does anyone know the reason behind eclipse making the suggestion to make an incorrect import? Is it just a bug? I don’t think it’s a bug, as it would have got fixed at least after it was mentioned on the Android documentation.

    If it’s not a bug, then what is a real purpose of android.R? What does it exactly refer to?

    Your opinions/experiences will be really helpful!


    Related posts:

    How to style text in action overflow menu on device with Android>4.0 and hardware button?
    Android “Not_Market_Managed” error
    How Whatsapp, Viber like application keep tracks of mobile users?
    Best IOC container for android/mobile devices
    FragmentManager is already executing transactions. When is it safe to initialise pager after commit?
    Android Native debug (ndk-gdb) on HTC Desire: run-as flaw?
  • How to get EditText value and display it on screen through TextView?
  • Getting SSLHandShakeException
  • How to use Git on Android?
  • Detect Android app upgrade and set Application class boolean for show/hide of EULA
  • How to create RadioButton group in preference.xml window?
  • Creating an Android Test project in Eclipse
  • 3 Solutions collect form web for “import android.R in Eclipse : Why?”

    This is not a bug. There are a few instances where android.R can be helpful and solve problems.

    android.R is an file like the one you have in your own projects. The one in your projects (your.packagename.R) holds references to the resources you have under your /res folder like layouts, drawables, XML files, raw files, strings etc.

    On the other hand, the android.R file holds references to certain default resources that Android has inbuilt, like simple_list_item_1.

    Eclipse suggests this and auto imports this sometimes as if your project’s R file hasn’t been generated due to an XML error or something, your code will be referencing a file that doesn’t exist. By importing android.R, eclipse makes sure your code references a class that exists. However, android.R is unlikely to have the same resources you did, and this will raise another set of errors.

    Eclipse will also always try to automatically import android.R in your class if you rename your package name via android tools and not rename base package name in your code with the same name because he will assume you have two R’s in your file.

    Try this…

    Window -> Prefs -> Java -> Editor -> Save Actions

    Uncheck “Organize Imports.” Hopefully that will do it.

    After this setting, it works for me.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.