相关疑难解决方法(0)

在整个应用程序中处理多个实验注释

我有一个应用程序大量使用 Jetpack Compose 的实验功能,因此我必须在可组合项上声明一堆注释。由于这些注释要求调用者也声明它们,所以我最终遇到了以下情况:我有一个包含以下代码的活动:

\n
import androidx.appcompat.app.AppCompatActivity\n\nimport androidx.compose.material.ExperimentalMaterialApi\nimport androidx.compose.ui.ExperimentalComposeUiApi\n\nimport com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi\nimport com.google.accompanist.pager.ExperimentalPagerApi\nimport com.google.accompanist.permissions.ExperimentalPermissionsApi\n\xe2\x80\xa6\n\nclass MainActivity : AppCompatActivity() {\n\n    @ExperimentalPermissionsApi\n    @ExperimentalComposeUiApi\n    @ExperimentalPagerApi\n    @ExperimentalMaterialNavigationApi\n    @ExperimentalMaterialApi\n    override fun onCreate(savedInstanceState: Bundle?) {\n        // \xe2\x80\xa6 wiring up compose code (which propagates the experimental annotations)\n
Run Code Online (Sandbox Code Playgroud)\n

避免这种情况的另一种方法是使用@OptIn,但由于每个声明只允许使用一个,因此它不适用于我的具有多个实验功能的情况。

\n

无论如何\xe2\x80\xa6 这在 Kotlin 1.5 中 \xe2\x80\x94 工作得很好。

\n

使用 Kotlin 1.6 我收到编译错误:

\n
\n

覆盖上的选择加入要求标记注释需要基本声明上的相同标记

\n
\n

但基本声明位于标准 API 中,我无法更改。\n如何进行编译(并像以前一样工作)?

\n

android kotlin-experimental android-jetpack-compose

19
推荐指数
4
解决办法
1万
查看次数