如何在项目范围内使用 Kotlin ExperimentalUnsignedTypes (AndroidStudio)

Posted

技术标签:

【中文标题】如何在项目范围内使用 Kotlin ExperimentalUnsignedTypes (AndroidStudio)【英文标题】:How to use Kotlin ExperimentalUnsignedTypes project wide (AndroidStudio) 【发布时间】:2020-02-25 07:58:59 【问题描述】:

我正在尝试在我的 androidStudio 项目中使用 @ExperimentalUnsignedTypes。看来我必须把它放在任何地方,所以我宁愿在项目范围内设置它。

The documentation 说

除非明确说明,否则此类 API 的使用将被报告为警告 选择使用 UseExperimental 注释,例如 @UseExperimental(ExperimentalUnsignedTypes::class),或使用 -Xuse-experimental=kotlin.ExperimentalUnsignedTypes 编译器选项已给出。

尽职尽责,我调整了我的Preferences>>Other Settings>>Kotlin Compiler

但是在清理/制作后我仍然收到(很多)警告。有人建议我也将-XXLanguage:+InlineClasses 添加到同一行。但结果是一样的。然后我注意到在同一个首选项窗格的顶部它说:

这是我的问题吗?如果是这样,我在哪里可以调整我的应用程序设置以使这些编译器设置生效?

【问题讨论】:

【参考方案1】:

即使修正了拼写更正,它仍然无法正确编译。我怀疑“......覆盖项目设置......”确实有问题。但是,将以下内容放在我的(项目)gradle 文件中确实有效:

allprojects 
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all 
        kotlinOptions 
            freeCompilerArgs += [
                    "-Xuse-experimental=kotlin.ExperimentalUnsignedTypes",
                    "-XXLanguage:+InlineClasses"
            ]
        
    

【讨论】:

对我不起作用。【参考方案2】:

在屏幕截图中你有-Xexperimental=...,而不是必需的-Xuse-experimental=...

【讨论】:

所以我愿意。令人困惑的是,既然这么长,我可以发誓我直接从文档中复制粘贴。不幸的是,即使修复了它,它仍然无法正常工作。 但是,在 gradle 文件中添加一些东西似乎确实有效。

以上是关于如何在项目范围内使用 Kotlin ExperimentalUnsignedTypes (AndroidStudio)的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin - 在索引范围内的 IntArray 中查找最小值

遇见未来:Kotlin 1.1发布

如何智能更改项目范围内的函数签名?

Kotlin:如何从范围返回一些值?

如何在 Kotlin 片段内的按钮之间切换片段?

显示范围内给定数字的倍数