目前我正面临一个我无法解决的问题。由于一个错误,我必须将较低的targetsdkVersion设置为25(这是该帖子时最大可能的目标版本)
它的解决方案可能需要我很长时间才能解决,因此同时我想为生产构建设置较低的targetSdkVersion,并为测试设置25(androidTest变体)。
我知道我可以通过添加新口味来实现,但我想避免这种情况。
我的问题是,如何为androidTest设置不同的targetSdkVersion而不是其他变种/配置?
答案 0 :(得分:1)
显然没有办法实现它。我最终不得不产生如下新口味:
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);
}
}
}
由于我已经需要使用debug buildType和target 24的变体,我只删除了我的target25Release变体,但是如果不需要它我可以写下面的内容将目标25设置为所有调试变体:
android {
def defaultTargetSdk = 24
def androidTestTargetSdk = 25
defaultConfig {
targetSdkVersion defaultTargetSdk
}
buildTypes {
debug {
defaultConfig {
minSdkVersion androidTestTargetSdk
}
}
}
}
答案 1 :(得分:0)
在taargeted sdk level
文件中为manifest
和<?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>
添加以下代码,如下所示,
width: parent.width