我的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.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。
根据已知导航问题2.4.0-alpha03:
使用Gradle 6.7.0时,由于依赖于旧版本的Kotlin,安全Args将失败,并出现
Unable to find method ‘’java.lang.String kotlin.text.CarsKt.titleCase(char, java.util.Locale)’’
错误。这可以通过更新使用Gradle 7.0来解决。(b/190739257(
因此,您应该通过将gradle-wrapper.properties
文件更改为使用Gradle 7.0:来升级到Gradle 7.0
distributionUrl=https://services.gradle.org/distributions/gradle-7.0-all.zip