Matt Logan Matt Logan - 6 months ago 46
Java Question

Configuring res srcDirs for androidTest sourceSet

I'd like to include resources to be compiled only for testing.

I have the following in my app module build.gradle file:

android {

...

sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
res.srcDirs = ['src/androidTest/res']
}
}
}


The java srcDirs path is correct, yet if I try to get a resource from the res directory in androidTest, the resource can't be found.

How can I have resources in the androidTest directory that are only included for tests?

Answer

Turns out you don't need to change anything from the default build.gradle file.

The trick is that the auto-generated R.java file is different for resources in androidTest.

If the import statement for R somewhere in your main source set looks like:

import com.mycompany.myappname.R;

the import statement for R in a test file should look like:

import com.mycompany.myappname.test.R;