0

我正在开发一个使用 Kotlin Multiplatform 插件的应用程序,我尝试使用 Navigation 组件在我的应用程序的不同片段之间导航。

我的问题是由于与常规 Android Proyect 相比 KMM proyect 的复杂结构。

当我尝试运行我的 proyect 时,使用它的 FragmentArgs 类找不到生成的 Navigation 组件的不同类。

也就是说,在 KMM 中,用户界面在不同的文件夹中是分开的,业务逻辑是另一个类,数据库也是。

在此捕获中,它可以看到 KMM proyec 的常规结构:

在此处输入图像描述

所以在我的 DetailFragmentArgs 中生成的错误是这样的:

error: cannot find symbol
    private final UnplashPhoto photo = null;
                  ^
  symbol:   class UnplashPhoto

我的 nav.graph.xml 的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/nav_graph"
    app:startDestination="@id/HomeFragment">

    <fragment
        android:id="@+id/HomeFragment"
        android:name="com.jshvarts.kmp.android.home.HomeFragment"
        android:label="HomeFragment" >
        <action
            android:id="@+id/action_navigate_from_home_to_detail"
            app:destination="@id/DetailFragment">
            <argument
                android:name="photo"
                app:argType="shared.src.commonMain.kotlin.com.jshvarts.kmp.model.UnplashPhoto"/>
        </action>
    </fragment>
    <fragment
        android:id="@+id/DetailFragment"
        android:name="com.jshvarts.kmp.android.detail.DetailFragment"
        android:label="DetailFragment" >
        <argument
            android:name="photo"
            app:argType="shared.src.commonMain.kotlin.com.jshvarts.kmp.model.UnplashPhoto"/>
    </fragment>
</navigation>

我尝试了一些路径,但不起作用:从存储库、从内容根目录和源根目录。

如果您在 KMM 插件方面更有经验并在某个时候处理过这个问题,欢迎您提供帮助!

提前致谢 !

4

0 回答 0