'java.lang.String kotlin.text.CharsKt.titlecase(char, java.util.Locale)' 导航 2.4.0-alpha03 错误(包含 nav_graph)

'java.lang.String kotlin.text.CharsKt.titlecase(char, java.util.Locale)' error on Navigation 2.4.0-alpha03 (with include nav_graph)

我的 Android 应用项目有问题。

我在构建项目时遇到错误。

> Task :app:generateSafeArgsDebug FAILED

Execution failed for task ':app:generateSafeArgsDebug'.
> 'java.lang.String kotlin.text.CharsKt.titlecase(char, java.util.Locale)'

我的 nav_graph.xml 如下。 它使用包括其他 nav_graph.

nav_graph.xml

<navigation>

    <fragment
        android:id="@+id/test2_fragment1"
        android:name="myexample.TestFragment1"
        android:label="TestFragment1"
        tools:layout="@layout/fragment_test1" >
        <action
            android:id="@+id/action_testFragment1_to_nav_graph2"
            app:destination="@id/nav_graph2"
            <argument
                android:name="funcType"
                app:argType="string"
                app:nullable="false" />
        </action>
    </fragment>

    <include app:graph="@navigation/nav_graph2" />

</navigation>

nav_graph2.xml

<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/nav_graph2"
    app:startDestination="@id/fragment_test2">

    <fragment
        android:id="@+id/test2_fragment"
        android:name="myexample.TestFragment2"
        android:label="TestFragment2" >
        tools:layout="@layout/fragment_test2" >
        <argument
            android:name="funcType"
            app:argType="string"
            app:nullable="false" />
    </fragment>

</navigation>

使用导航、组件和插件库版本 2.4.0-alpha03 时发生。 使用导航和插件版本 2.3.5 和组件 1.0.0-alpha10 库,没问题。 我使用 Kotlin 1.5.20 和 JVM 1.8。

根据 Known Issues of Navigation 2.4.0-alpha03:

Safe Args will fail with an Unable to find method ‘’java.lang.String kotlin.text.CarsKt.titleCase(char, java.util.Locale)’’ error when using Gradle 6.7.0 due to a dependency on an older version of Kotlin. This can be worked around by updating to use Gradle 7.0. (b/190739257)

所以您应该升级到 Gradle 7.0,方法是将 gradle-wrapper.properties 文件更改为使用 Gradle 7.0:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip