今日、Android StudioをGradleプラグインバージョン4.10.1に付属の3.3バージョンに更新しました。
以前、build.gradleは、このコードを使用してapkの名前を次の構造に変更していました。
app-{buildType[release|debug]}-{flavor[prod|stage]}-{versionName[1.2.4]-{versionCode[43]}.apk
app-release-prod-1.1.4-45.apk。
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = output.outputFile.name.replace(".apk", "-${variant.versionName}-${variant.versionCode}.apk").replace("-unsigned", "")
}
}
しかし、更新後にこのエラーが発生しました。
警告:API'variantOutput.getPackageApplication() 'は廃止され、' variant.getPackageApplicationProvider() 'に置き換えられました。 2019年末に削除されます。詳細については、 https://d.Android.com/r/tools/task-configuration-avoidance を参照してください。何がvariantOutput.getPackageApplication()を呼び出しているかを判別するには、コマンドラインで-Pandroid.debug.obsoleteApi = trueを使用して、スタックトレースを表示します。影響を受けるモジュール:アプリ
このプラグインバージョンでは出力データにアクセスできないため、問題はoutput.outputFile.nameにあります。
これまでのところ、私はこのアプローチを試しましたが成功しませんでした。
applicationVariants.all { variant ->
variant.flavors*.name.all { flavor ->
outputFileName = "${flavor}-${variant.buildType.name}-${variant.versionName}-${variant.versionCode}.apk".replace("-unsigned", "")
}
}
何か案が?
================================================== =====
[〜#〜]更新[〜#〜]
この問題を再検討しました。次のスニペットを試しましたが、そのバリアントのフレーバーを取得する際に問題が発生します。
Android.applicationVariants.all { variant ->
def flavor = variant.flavorName
variant.outputs.all { output ->
def builtType = variant.buildType.name
def versionName = variant.versionName
def versionCode = variant.versionCode
outputFileName = "app-${flavor}-${builtType}-${versionName}-${versionCode}.apk"
}
}
outputs: app--release-1.0.4-88.apk
ありがとう
applicationVariants.all { variant ->
variant.outputs.all {
def appName = "AppName"
def buildType = variant.variantData.variantConfiguration.buildType.name
def newName = "${appName}${defaultConfig.versionName}_${buildType}.apk"
outputFileName = newName
}
}
以下のコードは、apkファイル名を次のように生成します
AppName1.2.0_buildType.apk