Estoy usando la siguiente configuración simplificada en un archivo Kotlin Dsl en un proyecto de aplicación de Android.
class ApplicationVariantAction : Action<ApplicationVariant> { override fun execute(variant: ApplicationVariant) { val fileName = createFileName(variant) variant.outputs.all(VariantOutputAction(fileName)) } private fun createFileName(variant: ApplicationVariant): String { return "Android" + "_${variant.name}" + "_${variant.flavorName}" + "_${variant.buildType}" + "_${variant.versionName}" + "_${variant.versionCode}" + "_${getDateTimeFormat()}.apk" } private fun getDateTimeFormat(): String { val simpleDateFormat = SimpleDateFormat("yyMdHms", Locale.US) return simpleDateFormat.format(Date()) } class VariantOutputAction( private val fileName: String ) : Action<BaseVariantOutput> { override fun execute(output: BaseVariantOutput) { if (output is BaseVariantOutputImpl) { output.outputFileName = fileName } } } }Pero AS me da que ApplicationVariant y BaseVariantOutput están en desuso
¿Cómo puedo reemplazar estas clases en desuso?
La API Variant disponible en el paquete com.android.build.gradle.api en el artefacto com.android.tools.build:gradle ha quedado obsoleta.
Eso incluye
BaseVarianty todas sus subclases directas e indirectas:LibraryVariant,ApkVariant,ApplicationVariant,FeatureVariant,TestVariant,UnitTestVariant.
La nueva Variant API está disponible en el paquete com.android.build.api.variant en el artefacto com.android.tools.build:gradle-api .
Al escribir complementos, ahora se recomienda depender solo del artefacto
gradle-apipara usar solo las nuevas interfaces y clases. Una pequeña excepción aquí son las clases de complementos que se moverán agradle-apien 8.0:
AppPluginLibraryPluginDynamicFeaturePluginTestPlugin
Consulte la cronología de migración de DSL/API del complemento de Gradle para Android para obtener detalles de la migración y Nuevas API en el complemento de Gradle para Android para obtener un excelente artículo sobre los cambios en la API.