gpt4 book ai didi

android - 将 Jetpack-Compose 添加到项目使用 API below 21

转载 作者:行者123 更新时间:2023-12-04 23:56:10 25 4
gpt4 key购买 nike

我知道最低 API 级别 21 是在项目中启用 Jetpack Compose 的必要条件。

我想在现有项目中使用 JetPack Compose。它使用 minSdkVersion=17 并且我无法将 compose 依赖项添加到 build.gradle

uses-sdk:minSdkVersion 17 cannot be smaller than version 21 declared in library [androidx.activity:activity-compose:1.3.0-alpha03]

我的目标是为 Android API >= 21 的用户使用 Compose。

我如何实现这个目标?

最佳答案

我尝试创建一个新的 android-library 模块 (:widget)。设置 minSdkVersion=21 并在其中配置 Compose。

添加:widget:app模块依赖

dependencies {
implementation project(":widget")
...
}

覆盖 :app 的 AndroidManifest.xml 中所有 Compose 包的 minSdkVersion

<uses-sdk
android:minSdkVersion="17"
tools:overrideLibrary="com.example.widget, androidx.compose.ui.platform, androidx.compose.material.icons, androidx.activity.compose, androidx.compose.ui.tooling, androidx.compose.ui.tooling.data, androidx.compose.material.ripple, androidx.compose.foundation, androidx.compose.animation, androidx.compose.foundation.layout, androidx.compose.ui.text, androidx.compose.ui.graphics, androidx.compose.ui.unit, androidx.compose.ui.util, androidx.compose.ui.geometry, androidx.compose.runtime.saveable, androidx.compose.animation.core" />

最后,定义custom-view,将配置好的ComposeView作为普通view返回。

它会在 Android API >= 21 中正常工作

fun myCustomView(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
): View {
return ComposeView(context, attrs, defStyleAttr).apply {
setContent {
Text(text = "Hello")
}
}
}

关于android - 将 Jetpack-Compose 添加到项目使用 API below 21,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66499317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com