次のようにカスタムbuildTypeを作成しました。
buildTypes {
releasefree.initWith(buildTypes.release)
releasefree {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
releasepro.initWith(buildTypes.release)
releasepro {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
applicationIdSuffix ".pro"
}
debugfree.initWith(buildTypes.debug)
debugfree {
shrinkResources true
applicationIdSuffix ".debug"
debuggable true
}
debugpro.initWith(buildTypes.debug)
debugpro {
shrinkResources true
applicationIdSuffix ".pro.debug"
debuggable true
}
}
デフォルトのデバッグビルドタイプとリリースビルドタイプを使用するつもりはなく、ビルドバリアントリストからそれらを削除したいと思います。私はいくつかのフレーバーを持っていて、バリアントのリストが多すぎます。デフォルトのデバッグタイプとリリースタイプでバリアントを削除すると、それらを使用することはないので役立ちます。
次のようにバリアントフィルターを使用してみましたが、機能しませんでした
Android.variantFilter { variant ->
if(variant.buildType.name.endsWith('Release') || variant.buildType.name.endsWith('Debug')) {
variant.setIgnore(true);
}
}
バリアントのフィルタリング方法に問題がありますか、それともデフォルトのデバッグおよびリリースビルドタイプでバリアントを削除できないだけですか?.
理解した。それは私の側では本当にばかげた間違いでした。上記のバリアントフィルターは機能します。名前はすべて小文字で、比較した文字列の大文字が原因でした。
次のように変更すると(比較文字列を小文字にする)、期待どおりに機能しました。
Android.variantFilter { variant ->
if(variant.buildType.name.endsWith('release') || variant.buildType.name.endsWith('debug')) {
variant.setIgnore(true);
}
}
またはこれ
Android.variantFilter { variant ->
if(variant.buildType.name.equals('release') || variant.buildType.name.equals('debug')) {
variant.setIgnore(true);
}
}
名前で除外したい場合は、次のようなものを使用してください
Android.variantFilter { variant ->
if(variant.name.equals("qaRelease")|| variant.name.equals('something')) {
variant.setIgnore(true);
}
}