'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
我的 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