【问题标题】:Android SafeArgs - Can't import the Navigation Directions class generatedAndroid SafeArgs - 无法导入生成的导航方向类
【发布时间】:2021-06-05 10:33:50
【问题描述】:

我是来报告我的问题的错误的原因在哪里。错误基本上是,我无法导入在导航、方向中生成的类,当我编写整个路径或单击导入时,它只是将整个路径放在类所在的位置并且不知道那是什么is 但在它后面承认那里有一个类但不能给它导入。是不是很奇怪?我很感激你能给我的任何解决方案,谢谢!

package pt.saphirex.sample.android.ui

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import pt.saphirex.sample.shared.Greeting
import android.widget.TextView
import pt.saphirex.sample.android.R

fun greet(): String {
    return Greeting().greeting()
}

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val tv: TextView = findViewById(R.id.text_view)
        tv.text = greet()
        
        pt.saphirex.sample.android.ui.user.home.UserHomeFragmentDirections // <---- Doesn't recognize
    }

}

我的软件版本是:

  • Android Studio:4.2.1
  • KMM 插件:0.2.5(202-1.5.10-834-IJ)-3

GitHub 示例:https://github.com/0rangeFox/KMM-Sample

【问题讨论】:

  • 可能没有生成。有时会发生这种情况。这将对您有所帮助。看看这里stackoverflow.com/questions/50686907/…
  • @che10 正如我在描述中提到的,这是正在生成的,只是我的 Gradle Kotlin DSL 似乎没有达到应有的效果,我已经测试了 Android Material Components ( github.com/material-components/…) 回复模板,它与我提到的版本完美配合。
  • 该链接中有一个答案建议将sourceSets 直接包含到gradle 中。可以试试吗?
  • 谢谢,解决方案就是这样!
  • 我很高兴能帮助@0rangeFox。我会回答它,但我不能把它归功于它

标签: android kotlin gradle-kotlin-dsl kotlin-multiplatform android-safe-args


【解决方案1】:

解决方法基本上是这样,去android的“build.gradle.kts”,在“android { }”代码里面添加如下几行:

android {
    ...

    sourceSets {
        getByName("main") {
            java.srcDir("build/generated/source/navigation-args")
        }
    }

    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多