android - Android IllegalArgumentException:fragment_XXX 的标签无效。收到:layout-sw600dp/fragment_XXX_0
问题描述
我目前正在尝试配置我的应用程序的布局以支持多种屏幕尺寸。这个过程需要我身边的大量测试,所以我不断地删除/移动/重构布局文件。
但是,目前我无法解决标题中所写的异常,因为每次运行我的应用程序时都会显示它。在此异常之前,我有另一个名为layout-land 的布局文件夹,然后删除了该文件夹并将其内容移至layout-sw600dp文件夹。
我尝试了多种方法来解决这个问题:
- 我删除了所有额外的 layout-(s)w* 文件夹
- 是否重新启动了 Android Studio 并使缓存无效
- 项目清理/重建几次
还有什么可以帮助我的吗?
编辑
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)
解决方案
通过单击 Android Studio 左上角的下拉图标将视图设置为“包”。它将列出所有创建的布局目录。删除 layout-sw600dp 目录和您不需要的任何其他目录。清理并重建您的项目。错误将消失。
推荐阅读
- android - 是否可以在目标应用程序之外使用 detox 进行自动化测试?
- r - 尽管设置了选项 stringsAsFactors = F,为什么数据框不将字符串列设置为非因子?
- haskell - 如何在仆人处理程序中打印未捕获异常的堆栈跟踪?
- python - 在python中使用条件解析json
- java - 如何解决 JNA 错误“仅发出 ReadProcessMemory 或 WriteProcessMemory 请求的一部分”?
- dockerfile - wget:无法解析主机地址“github.com”
- ansible - (cisco.asa.asa_command) 模块不支持的参数:上下文、在提供程序中找到的密码
- python - Python同时初始化和输入
- keras - 如何操作 Keras 层?:立体视觉成本量
- javascript - 如何在 babel 中使用 tsconfig.json