com.android.tools.lint.checks
Class WrongImportDetector

java.lang.Object
  extended by com.android.tools.lint.detector.api.Detector
      extended by com.android.tools.lint.checks.WrongImportDetector
All Implemented Interfaces:
com.android.tools.lint.detector.api.Detector.JavaScanner

public class WrongImportDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.JavaScanner

Checks for "import android.R", which seems to be a common source of confusion (see for example http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error and many other forums).

The root cause is probably this (from http://source.android.com/source/using-eclipse.html) :

Note: 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.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.tools.lint.detector.api.Detector
com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
 
Field Summary
static com.android.tools.lint.detector.api.Issue ISSUE
          Is android.R being imported?
 
Constructor Summary
WrongImportDetector()
          Constructs a new WrongImportDetector check
 
Method Summary
 lombok.ast.AstVisitor createJavaVisitor(com.android.tools.lint.detector.api.JavaContext context)
           
 java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
           
 com.android.tools.lint.detector.api.Speed getSpeed()
           
 
Methods inherited from class com.android.tools.lint.detector.api.Detector
afterCheckFile, afterCheckLibraryProject, afterCheckProject, applicableSuperClasses, appliesTo, appliesTo, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkClass, checkFolder, checkInstruction, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableElements, getApplicableFiles, getApplicableMethodNames, getSpeed, run, visitAttribute, visitBuildScript, visitConstructor, visitDocument, visitElement, visitElementAfter, visitMethod, visitResourceReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.JavaScanner
applicableSuperClasses, appliesToResourceRefs, checkClass, getApplicableConstructorTypes, getApplicableMethodNames, visitConstructor, visitMethod, visitResourceReference
 

Field Detail

ISSUE

public static final com.android.tools.lint.detector.api.Issue ISSUE
Is android.R being imported?

Constructor Detail

WrongImportDetector

public WrongImportDetector()
Constructs a new WrongImportDetector check

Method Detail

getSpeed

@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed()
Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector

getApplicableNodeTypes

public java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
Specified by:
getApplicableNodeTypes in interface com.android.tools.lint.detector.api.Detector.JavaScanner
Overrides:
getApplicableNodeTypes in class com.android.tools.lint.detector.api.Detector

createJavaVisitor

public lombok.ast.AstVisitor createJavaVisitor(@NonNull
                                               com.android.tools.lint.detector.api.JavaContext context)
Specified by:
createJavaVisitor in interface com.android.tools.lint.detector.api.Detector.JavaScanner
Overrides:
createJavaVisitor in class com.android.tools.lint.detector.api.Detector