"min sdk version/target sdk version"和"compile sdk version"有什么区别?我知道min和target sdk意味着什么,但是编译sdk版本意味着什么?
在Eclipse中,我有min/max和target sdk,但在android studio中有这三个设置.
我在网上搜索这个非常基本的问题,但找不到答案。Jetpack Compose 是否只能在 sdk 31 上工作,还是可以在以前的 Android 版本上工作?如果它是半向后兼容的,我如何在以前的版本中使用它?
我开发了一个以 API 21 作为目标 SDK 版本的 Android 应用程序。
它会在它上面的 API 上正常运行吗,例如 API 23?
我使用 kotlin 在 Intellij Idea 中实现了一个项目。这是没有错误的工作。这是我的 Intellij 项目照片,没有错误
但是当我在 Android Studio 中实现这个项目时,我得到了错误,因为工作室在 BigInteger 类中找不到这个方法
longValueExact()
Android Studio 项目照片:
我的计算机中有一个 JDK (v 1.8) 。但在 Itellij 项目中此方法有效,而在 android studio 中无效。
我在android studio中打开java.math.BigInteger类并看到longValueExact()方法:
open class AuthKey(val key: ByteArray) {
constructor(key: ByteBuffer) : this(key.array())
init {
if (key.size != 256)
throw RuntimeException("AuthKey must be 256 Bytes found ${key.size} bytes")
}
// see https://core.telegram.org/mtproto/description#key-identifier
// SHA1 generates 20 bytes long hash, authKeyId is the lower 8 bytes
val keyId = CryptoUtils.substring(CryptoUtils.SHA1(key), 12, 8)
fun …
Run Code Online (Sandbox Code Playgroud) 当我使用带有或不带有 kotlin dsl 的jetpack compose工具包创建新的 android 项目时,我发现在模块级 build.gradle 文件中,属性 compileSdkVersion 已被 compileSdk 替换。我还发现android sdk版本“android-S”无法添加到compileSdk,因为需要单独添加compileSdkVersion =“android-S”。我的问题是compileSdk和compileSdkVersion之间到底有什么区别。
build.gradle.kts(模块:Compose.app)
android {
compileSdk = 30
buildToolsVersion = "30.0.3"
compileSdkVersion = "android-S"
}
Run Code Online (Sandbox Code Playgroud) android android-studio build.gradle gradle-kotlin-dsl android-jetpack-compose
我希望在Play商店中有一个应用程序供Android M用户下载,但应用程序的权限模型尚未完成.如果我将compileSdkVersion和targetSdkVersion设置为22而不是23 - android M用户是否会看到该应用程序并能够dl它(在运行时授予所有权限)?
compileSdkVersion 22
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
}
Run Code Online (Sandbox Code Playgroud) 我知道这targetSdkVersion
是“最高的 SDK 版本,您的应用程序可以使用”,但有什么意义呢?我设置了targetSdkVersion
22,我的应用程序在 api 25 设备上运行良好。这不是为了防止在其他 api 版本上安装吗?如果不是,那么它的意义是什么?