A. *_*brg 5 gradle kotlin android-studio build.gradle gradle-kotlin-dsl
我在 Android 应用程序项目的 Kotlin Dsl 文件中使用以下简化配置。
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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但 AS 告诉我 ApplicationVariant 和 BaseVariantOutput 已弃用
如何替换这些已弃用的类?
工件中的包中可用的Variant API已被弃用。com.android.build.gradle.apicom.android.tools.build:gradle
这包括
BaseVariant其所有直接和间接子类:LibraryVariant、ApkVariant、ApplicationVariant、FeatureVariant、TestVariant、UnitTestVariant。
新的 Variant API 可在工件com.android.build.api.variant中的包中找到com.android.tools.build:gradle-api。
在编写插件时,现在建议仅依赖
gradle-api工件,以便仅使用新的接口和类。gradle-api这里的一个小例外是将在 8.0 中移动的插件类:
AppPluginLibraryPluginDynamicFeaturePluginTestPlugin
请参阅Android Gradle 插件 DSL/API 迁移时间表以了解迁移详细信息,并参阅 Android Gradle 插件中的新 API以获取有关 API 更改的精彩文章。
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |