gpt4 book ai didi

android - 如何仅在运行测试时更改 minSdkVersion

转载 作者:太空狗 更新时间:2023-10-29 13:15:27 25 4
gpt4 key购买 nike

我在 AndroidManifest.xml 和 build.gradle 中有一个 minSdkVersion 设置为 14 的 android studio 项目

现在我想写一些自动化测试,所以我在build.gradle中添加了一些依赖。其中之一是:androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'

当我尝试运行测试时,我得到:

错误:(5, 5) uses-sdk:minSdkVersion 14 不能小于库 com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 中声明的版本 18

错误:任务 ':app:processDebugTestManifest' 执行失败。 java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 18 declared in library com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 建议:使用工具:overrideLibrary="android.support.test.uiautomator.v18"强制使用

我将 list 文件更改为:,但这没有帮助。

如果我将 build.gradle 更改为 minSdkVersion 18,那么它就可以工作了。但我不想仅仅因为测试库而更改我的应用程序的 minSdkVersion。

有没有办法配置 build.gradle 在我运行自动化测试时使用 minSdkVersion 18,但为应用保留 minSdkVersion 14?

最佳答案

这是我的做法:

  1. 创建两种口味:
    • appConfig : 它是空的,所以它继承了 defaultConfig
    • testConfig:它声明了 minSdkVersion 18。
  2. 仅为 testConfig 添加对 uiautomator 的依赖。

以下是我的 build.gradle 的摘录

defaultConfig {
applicationId "..."
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}

productFlavors {
appConfig {
}
testConfig {
minSdkVersion 18
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
}
}

dependencies {
...
testConfigCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'

关于android - 如何仅在运行测试时更改 minSdkVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35203292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com