在androidTest清单中更改manifestPlaceholders

时间:2018-02-19 12:18:11

标签: android android-espresso

我有明确的服务占位符:

<service
        android:name=".MyService"
        android:process="${processName}">

在我的build.gradle中,我替换了它。

android {  
    defaultConfig {
        manifestPlaceholders = [
                processName: ':Proc'
        ]
    }
}

但对于我的espresso测试(androidTest),我需要processName中的空值。我怎么能这样做?

我尝试使用buildTypes执行此操作,但它不起作用(BuildType名称不能以&#34开头; androidTest&#34;)

3 个答案:

答案 0 :(得分:1)

此示例适用于Gradle插件3.4.1:

android {
    unitTestVariants.all {
        it.mergedFlavor.manifestPlaceholders += [
                placeHolderName: "placeHolderValue"
        ]

        it.mergedFlavor.addResValue(new ClassFieldImpl("string", "resValueName", "resValueValue"))
    }
}

答案 1 :(得分:0)

我认为这里最好的方法是根据documentation

的建议为您的仪器测试编写第二个AndroidManifest

<强> ../应用程序/ SRC / androidTest / AndroidManifest.xml中

<service
   android:name=".MyService"
   android:process="">

答案 2 :(得分:0)

仅添加清单将无济于事,因为您仅需使用以下方法即可提供合并策略:

 <service
   android:name=".MyService"
   android:process="" 
   tools:node="replace">

比合并清单中的值要正确。