【问题标题】:layout-xxx/ causing TypeClass file collision: A resource exists with a different case: '....R$ID.class'layout-xxx/ 导致 TypeClass 文件冲突:资源存在不同的情况:'....R$ID.class'
【发布时间】:2011-06-13 17:29:19
【问题描述】:

我的 Android 项目使用标准布局一切正常,但是每当我添加一个新的 layout-xxx 子目录时,比如 layout-large,并将一个 XML 文件复制到它作为我所讨论的新大小的基线,从那时起,我得到了上面列出的错误,项目将无法编译。

Location TypeClass 文件冲突:资源存在,但大小写不同:'R$ID.class'

如果我从 layout-xxx 目录中删除 xml 文件,一切都会恢复正常。我确实在清单中有支持屏幕标签。

我不可能需要在我的布局中为单独的布局文件使用单独的名称来标识我的所有视图等,对吗?这会使编码的条件变得如此荒谬,以至于不值得。

我做错了什么?还是失踪了?

【问题讨论】:

  • 你绝对应该改变布局ID;这将破坏资源绑定的意义。您是否在复制文件后尝试清理您的项目?另外,您能否发布一个出现问题的布局示例?
  • 是的,我确实运行过 clean 等。唉,无济于事。布局很简单 ScrollView 里面有一个 RelativeLayout.. 然后是各种小部件。
  • @user756212: 是否像在一个 ID 为 textView1 的布局文件和另一个名为 textview1 的布局文件中拥有一个 TextView(例如)一样简单?换句话说,名称相同但仅大小写字符不同。
  • 不,这不是视图定义之间具有相同 id 的不同项目的冲突。我似乎已经通过再次重新复制 XML 解决了这个问题。但现在我遇到了问题,它没有选择布局大的定义。在 2.2 下,WVGA854 不是不被认为是大的吗?
  • @user756212 - 不一定。大是指屏幕尺寸,而不是分辨率。与 xhdpi 普通屏幕相比,ldpi 大屏幕的像素可能更少。模拟器使用一个神秘的公式(至少我还没有找到任何文档)将皮肤的像素大小和密度与显示缩放相结合来对模拟设备进行分类。

标签: android layout screen-size


【解决方案1】:

我今天遇到了同样的问题,这是因为我的错误。

我的菜单是这样定义的

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_item_share_action_provider_action_bar"
        android:showAsAction="always"
        android:title="@string/action_bar_share_with">
        <menu >
            <item android:id="@+Id/someid"
                android:title="MyMenu"/>
        </menu>
        </item>
</menu>

错误原因是 Id 大写的 I 实际上应该类似于 id

希望这对某人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-12
    • 2020-10-25
    • 2022-01-20
    • 1970-01-01
    • 2020-04-15
    • 2019-12-22
    • 1970-01-01
    • 2018-08-14
    相关资源
    最近更新 更多