diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/Options.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/Options.java index 7169578641..66bdf3badf 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/Options.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/Options.java @@ -41,6 +41,7 @@ public Options(ProcessingEnvironment processingEnvironment) { addSupportedOption(AndroidManifestFinder.OPTION_MANIFEST); addSupportedOption(AndroidManifestFinder.OPTION_LIBRARY); addSupportedOption(ProjectRClassFinder.OPTION_RESOURCE_PACKAGE_NAME); + addSupportedOption(ProjectRClassFinder.OPTION_USE_R2); addSupportedOption(ModelConstants.OPTION_CLASS_SUFFIX); addSupportedOption(FileAppender.OPTION_LOG_FILE); addSupportedOption(LoggerContext.OPTION_LOG_LEVEL); diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/rclass/ProjectRClassFinder.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/rclass/ProjectRClassFinder.java index de405f6113..7ba3cadd66 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/rclass/ProjectRClassFinder.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/rclass/ProjectRClassFinder.java @@ -29,6 +29,7 @@ public class ProjectRClassFinder { public static final Option OPTION_RESOURCE_PACKAGE_NAME = new Option("resourcePackageName", null); + public static final Option OPTION_USE_R2 = new Option("useR2", "false"); private static final Logger LOGGER = LoggerFactory.getLogger(ProjectRClassFinder.class); @@ -40,7 +41,7 @@ public ProjectRClassFinder(AndroidAnnotationsEnvironment environment) { public IRClass find(AndroidManifest manifest) throws RClassNotFoundException { Elements elementUtils = environment.getProcessingEnvironment().getElementUtils(); - String rClass = getRClassPackageName(manifest) + ".R"; + String rClass = getRClassPackageName(manifest) + "." + getRClassSimpleName(); TypeElement rType = elementUtils.getTypeElement(rClass); if (rType == null) { @@ -60,4 +61,10 @@ public String getRClassPackageName(AndroidManifest manifest) { return manifest.getApplicationPackage(); } } + + private String getRClassSimpleName() { + boolean useR2 = environment.getOptionBooleanValue(OPTION_USE_R2); + + return useR2 ? "R2" : "R"; + } }