【问题标题】:Android : `androidx.navigation.NavArgs` not foundAndroid:找不到`androidx.navigation.NavArgs`
【发布时间】:2019-07-24 05:51:55
【问题描述】:

我从下面的代码中获取

但出现以下错误:已经花费了 3 个小时以上,但没有任何成功。

请帮我解决这个错误。

【问题讨论】:

  • DeepLinkFragmentArgs FlowStepFragmentArgs FlowStepFragmentDirections 这都是自动生成的类。

标签: android androidx android-jetpack navigationcontroller


【解决方案1】:

改变这个

  implementation 'android.arch.navigation:navigation-fragment-ktx:2.2.0-alpha01'
  implementation 'android.arch.navigation:navigation-ui-ktx:2.2.0-alpha01'

到这里:

  implementation 'androidx.navigation:navigation-fragment-ktx:2.2.0-alpha01'
  implementation 'androidx.navigation:navigation-ui-ktx:2.2.0-alpha01'

注意 android.arch.navigation 已替换为 androidx.navigation

另外,请确保将此插件应用到 build.gradle 之上:

apply plugin: "androidx.navigation.safeargs.kotlin"

这对于项目级别 build.gradle 的依赖项:

 classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-rc01"

【讨论】:

    【解决方案2】:

    如果您使用的是 kotlin 和 androidX,请替换此

    apply plugin: "androidx.navigation.safeargs"
    

    apply plugin: "androidx.navigation.safeargs.kotlin"
    

    在项目级别 build.gradle

    dependencies {
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha01"
    }
    

    在应用级别 build.gradle

    def nav_version = "2.1.0-alpha01"
    
    implementation "androidx.navigation:navigation-fragment:$nav_version"
    implementation "androidx.navigation:navigation-ui:$nav_version" 
    

    如果你使用的是 kotlin Ktx

    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
    

    希望这对其他人也有帮助。对我也有帮助

    【讨论】:

      【解决方案3】:

      尝试添加

      classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha05"
      

      代替

      classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-rc02"
      

      【讨论】:

      • 找不到 androidx.navigation:safe-args-gradle-plugin:1.0.0-rc02。
      【解决方案4】:

      Android Studio 3.3.1 版本也有类似的问题,但解决方法很简单。关闭项目并再次导入您的项目。你会看到结果。

      【讨论】:

        【解决方案5】:

        在您的 build.gradle 应用级别添加:

        apply plugin: 'androidx.navigation.safeargs'
        

        更新:

        这个codelab很老了,尽量不要更新库。

        【讨论】:

        • apply plugin: 'androidx.navigation.safeargs' 已经在应用级 gradle 中了。
        • 你使用的是什么版本的android studio。
        • 安卓工作室 3.3.1
        • 或删除整个构建文件夹。
        【解决方案6】:

        我尝试了上面写的所有东西,即添加所有插件和依赖项(虽然这是完全正确的)但我犯了这个愚蠢的错误 -> 我在片段之外创建了 navArgs 变量

        不要 ->

        private val args by navArgs<VideoCallFragmentArgs>()
        
        class YourFragment : Fragment() {
        
             override fun onCreateView(
              inflater: LayoutInflater, container: ViewGroup?,
              savedInstanceState: Bundle?
                  ): View? {
            return inflater.inflate(R.layout.fragment_video_call, container, false)
        }
        }
        

        始终在片段内创建 navArgs 变量。
        执行 ->

        class YourFragment : Fragment() {
        
        private val args by navArgs<VideoCallFragmentArgs>()
        
             override fun onCreateView(
              inflater: LayoutInflater, container: ViewGroup?,
              savedInstanceState: Bundle?
                  ): View? {
            return inflater.inflate(R.layout.fragment_video_call, container, false)
        }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-26
          相关资源
          最近更新 更多