在mypackage.R中找不到Android gradle src/androidTest/res/layout/mylayout.xml

van*_*rra 12 java xml android r.java-file

我在Android Studio中使用gradle编写单元测试.我的测试位于:

SRC/androidTest/JAVA

这很好用.现在,在我的测试中,我想访问在以下位置定义的资源:

SRC/androidTest/RES

具体来说,我想获得src/androidTest/res/layout/mylayout.xml.问题是我的测试包的R类或任何包的问题都定义了mylayout.

我在build.gradle上做了这个并没有什么区别:

sourceSets {
    androidTest.resources.srcDirs = ['src/res']
}
Run Code Online (Sandbox Code Playgroud)

如何为androidTest只提供的androidTest类提供资源?

Dam*_*num 13

对我来说,解决方案是将源文件src/androidTest/java和资源文件放入src/androidTest/res.这些是标准位置,因此您无需编辑任何内容gradle.build.

另外,重命名您的R导入

import com.mycompany.myappname.R;
Run Code Online (Sandbox Code Playgroud)

import com.mycompany.myappname.test.R;
Run Code Online (Sandbox Code Playgroud)

来源:为androidTest sourceSet配置res srcDirs

  • 这对我有帮助,虽然你不能同时导入测试和常规的"R"类.由于我也想在我的测试中使用我的app资源id,我不得不使用完全限定的类名引用测试应用程序的"R"文件,即`int someId = com.mycompany.myappname.test.R.raw .some_raw_resource;` (2认同)

van*_*rra 1

我找到了解决方案,将其添加到您的 build.gradle 文件中。

sourceSets {
    androidTest {
        java.srcDirs = ['src/androidTest/src']
        resources.srcDirs = ['src/androidTest/src']
    }
}
Run Code Online (Sandbox Code Playgroud)