首页 > 解决方案 > Android IllegalArgumentException:fragment_XXX 的标签无效。收到:layout-sw600dp/fragment_XXX_0

问题描述

我目前正在尝试配置我的应用程序的布局以支持多种屏幕尺寸。这个过程需要我身边的大量测试,所以我不断地删除/移动/重构布局文件。

但是,目前我无法解决标题中所写的异常,因为每次运行我的应用程序时都会显示它。在此异常之前,我有另一个名为layout-land 的布局文件夹,然后删除了该文件夹并将其内容移至layout-sw600dp文件夹。

我尝试了多种方法来解决这个问题:

  1. 我删除了所有额外的 layout-(s)w* 文件夹
  2. 是否重新启动了 Android Studio 并使缓存无效
  3. 项目清理/重建几次

还有什么可以帮助我的吗?

编辑

java.lang.IllegalArgumentException: The tag for fragment_XXX is invalid. Received: layout-sw600dp/fragment_XXX_0
   at com.example.myapp.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:422)
   at androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:79)
   at androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
   at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:130)
   at androidx.databinding.ViewDataBinding.inflateInternal(ViewDataBinding.java:1409)
   at com.example.myapp.databinding.FragmentXXXBinding.inflate(FragmentLoginBinding.java:146)
   at com.example.myapp.databinding.FragmentXXXBinding.inflate(FragmentLoginBinding.java:132)
   at com.example.myapp.XXXFragment.onCreateView(LoginFragment.java:74)
   at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
   at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
   at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
   at android.os.Handler.handleCallback(Handler.java:938)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:246)
   at android.app.ActivityThread.main(ActivityThread.java:8506)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

标签: androidandroid-layoutandroid-databinding

解决方案


通过单击 Android Studio 左上角的下拉图标将视图设置为“包”。它将列出所有创建的布局目录。删除 layout-sw600dp 目录和您不需要的任何其他目录。清理并重建您的项目。错误将消失。


推荐阅读