Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为androidTest源集配置res srcDirs_Java_Android_Android Testing_Build.gradle - Fatal编程技术网

Java 为androidTest源集配置res srcDirs

Java 为androidTest源集配置res srcDirs,java,android,android-testing,build.gradle,Java,Android,Android Testing,Build.gradle,我想包括仅为测试而编译的资源 我的app module build.gradle文件中包含以下内容: android { ... sourceSets { androidTest { java.srcDirs = ['src/androidTest/java'] res.srcDirs = ['src/androidTest/res'] } } } javasrcdirs路径是正确的,但

我想包括仅为测试而编译的资源

我的app module build.gradle文件中包含以下内容:

android {

    ...

    sourceSets {
        androidTest {
            java.srcDirs = ['src/androidTest/java']
            res.srcDirs = ['src/androidTest/res']
        }
    }
}
javasrcdirs路径是正确的,但是如果我尝试从androidTest中的res目录获取资源,则无法找到该资源


我如何才能在androidTest目录中拥有仅用于测试的资源?

结果表明,您不需要更改默认build.gradle文件中的任何内容

诀窍在于,对于
androidTest
中的资源,自动生成的
R.java
文件是不同的

如果主源集中某个地方的
R
导入语句如下所示:

import com.mycompany.myappname.R;
测试文件中
R
的导入语句应如下所示:

import com.mycompany.myappname.test.R;

如果您有一个已设置了
应用程序uffix
的生成类型,您的
src/androidTest/res
资源将位于
.test.R
非常重要

i、 e


src/androidTest/res
中有一些资源吗?它们不在
com.example.my.app.test
!如果您正在运行调试版本,则它们位于
com.example.my.app.debug.test.R

也适用于我,但仅限于InstrumentationTestCase。如果在AndroidTestCase中使用它,资源ID就不一样了,我得到的是一个随机的PNG图像,而不是我请求的XML文件。你怎么会认为OP设置了applicationIdSuffix?
applicationId "com.example.my.app"

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}