目前我面对的是一个我无法解决的问题。由于一个错误,我不得不将较低的targetsdkVersion设置为25 (在本文发表时,with是最大可能的目标版本)
它的解决方案可能需要我花很多时间来解决,所以同时我想为生产构建设置一个较低的targetSdkVersion,并为测试(androidTest变体)设置一个25。
我知道我可以通过添加新的口味来做到这一点,但我想避免这种情况。
我的问题是,如何仅为androidTest设置不同于其他变体/配置的targetSdkVersion?
发布于 2017-02-15 16:08:10
显然,没有办法做到这一点。我最终不得不生成一个新的风格,如下所示:
android {
def defaultTargetSdk = 24
def androidTestTargetSdk = 25
defaultConfig {
targetSdkVersion defaultTargetSdk
}
productFlavors {
target24 {
}
target25 {
targetSdkVersion androidTestTargetSdk
}
}
// Remove target25Release as it's used only for testing purpose and wont be not needed on production.
variantFilter { variant ->
def buildTypeName = variant.buildType.name
def flavorName = variant.getFlavors().get(0).name
if (buildTypeName.equals('release') && flavorName.startsWith('target25')) {
variant.setIgnore(true);
}
}
}因为我已经需要一个带有调试buildType和目标24的变体,所以我只删除了我的target25Release变体,但如果不需要它,我可以编写以下代码来将目标25设置为所有调试变体:
android {
def defaultTargetSdk = 24
def androidTestTargetSdk = 25
defaultConfig {
targetSdkVersion defaultTargetSdk
}
buildTypes {
debug {
defaultConfig {
minSdkVersion androidTestTargetSdk
}
}
}
}发布于 2017-02-14 00:47:53
在manifest文件中为minimum sdk level和taargeted sdk level添加以下代码,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-sdk android:minSdkVersion="3" /> //replace 3 with required minimum version
<uses-sdk android:targetSdkVersion="8" /> //replace 8 with required target version
</manifest>https://stackoverflow.com/questions/42209121
复制相似问题