【问题标题】:What is difference between compileSdk and compileSdkVersion in android studio gradle script when using jetpack compose使用jetpack compose时android studio gradle脚本中compileSdk和compileSdkVersion有什么区别
【发布时间】:2021-04-25 06:16:33
【问题描述】:

当我使用带有或不带有 kotlin dsl 的 jetpack compose 工具包创建新的 android 项目时,我发现在模块级 build.gradle 文件中,属性 compileSdkVersion 已被 compileSdk 替换。 我还发现无法将android sdk版本“android-S”添加到compileSdk,因为需要单独添加compileSdkVersion =“android-S”。我的问题是 compileSdkcompileSdkVersion 之间的区别到底是什么。

build.gradle.kts(Module:Compose.app)

android {
    compileSdk = 30
    buildToolsVersion = "30.0.3"
    compileSdkVersion = "android-S"
}

【问题讨论】:

  • 不确定。现在您可以在您的build.gradle 中使用minSdktargetSdkcompileSdk。它可能与 AGP 7.0.0 相关

标签: android android-studio build.gradle android-jetpack-compose gradle-kotlin-dsl


【解决方案1】:

借助新的 Android Gradle 插件 7.0.0(目前为 7.0.0-alpha14),您可以使用:

这些属性与 Int 一起使用,您可以将它们与以下内容一起使用:

//minSdkVersion 21
//targetSdkVersion 30
minSdk 21
targetSdk 30

如果你想使用你必须使用的预览版:

这些属性与 String 一起使用,设置这些值将覆盖之前的 minSdk/targetSdk/compileSdk 值。

关于目前预览版的字符串格式(7.0.0-alpha14)尚不清楚。也许它会随着7.0.0-beta01而改变(你可以检查this commit),它应该是:

compileSdkPreview = "S"

【讨论】:

  • compileSdkPreview = "S" 不支持 compileSdkPreview = "android-S" 即字符串值需要是 android-S
  • @VidyeshChuri 我已经为所有这些属性添加了相关链接。关于预览字符串的实现我不确定。可能它会随着 1.0.0-beta01 改变:检查这个提交:cs.android.com/android-studio/platform/tools/base/+/…
  • 我是否需要添加 compileSdkcompileSdkPreview 才能在 Playstore 上构建捆绑/发布应用程序?
  • @VidyeshChuri 在任何情况下你仍然可以使用 old compileSdkVersion。如果您使用compileSdkPreview,它将覆盖compileSdk 值。你在使用 7.0.0-alpha14 吗?
  • @GabrieleMariotti 已经支持 SDK 12,因为无论我做什么,它要么是 Gradle 同步失败,要么是在将其编译和目标更改为这个新 SDK 后无法安装应用程序。这也是我的问题。 stackoverflow.com/q/67649546/12204620
猜你喜欢
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多