我有一个应用程序大量使用 Jetpack Compose 的实验功能,因此我必须在可组合项上声明一堆注释。由于这些注释要求调用者也声明它们,所以我最终遇到了以下情况:我有一个包含以下代码的活动:
\nimport 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)\nRun Code Online (Sandbox Code Playgroud)\n避免这种情况的另一种方法是使用@OptIn,但由于每个声明只允许使用一个,因此它不适用于我的具有多个实验功能的情况。
无论如何\xe2\x80\xa6 这在 Kotlin 1.5 中 \xe2\x80\x94 工作得很好。
\n使用 Kotlin 1.6 我收到编译错误:
\n\n\n覆盖上的选择加入要求标记注释需要基本声明上的相同标记
\n
但基本声明位于标准 API 中,我无法更改。\n如何进行编译(并像以前一样工作)?
\n