【问题标题】:android dependency on resource variable namesandroid对资源变量名的依赖
【发布时间】:2012-05-01 03:33:25
【问题描述】:

我的应用程序中有非常奇怪的问题。 我添加了一个名为 add_new_item 的布局文件,但出现异常。 我什至没有将此 xml 文件设置为任何活动的内容。异常出现在未触及的库函数中。因此,在尝试查找根本原因时,我只是尝试将文件重命名为“data_entry_form”之类的名称,并且异常消失了!

在那之后,我又面临一个奇怪的类似问题。我有一个图像名称为“add_new_itm”的按钮。我有一个带有 4 个按钮的布局,其中一个是这个按钮。设置此布局后,如果我单击这些按钮中的任何一个以到达另一个活动,更改手机方向并使用 4 个按钮返回此活动,然后再次按下任何按钮,然后显示 wahtever 布局,它具有“add_new_item”图像作为背景。 即带有4个按钮的布局(第4个是add_new_item)->按下按钮1进入新屏幕->旋转手机->返回到4个按钮的布局->再次按下按钮1->屏幕将add_new_item图像作为背景占据完成屏幕。

现在我尝试重命名图像、按钮,一切正常。

你能解释一下这个奇怪的行为吗

【问题讨论】:

    标签: android resources dependencies


    【解决方案1】:

    这些事情可能会发生,因为如果您在项目中使用包含布局文件的库,则布局文件的名称和库布局不应重叠。编译器会为您的布局和库布局生成一个 R.java 文件,如果文件具有相同的名称,它将无法执行此操作。希望这会有所帮助。

    【讨论】:

    • 非常感谢。我已经验证了这一点并且没有冲突。但是我看到生成了两个 R.java 文件。都在 gen 文件夹中,但在不同的路径下。但是在我的所有文件中,我选择了一个特定于我的项目的文件。我看到所有新变量都被添加到两个 R.java 文件中。这种行为对吗
    • 我发现了一些更有趣的信息。正如我在之前的评论中提到的,我的项目有 2 个 R.java,其中一个是库项目。我观察到,当我添加一个新的资源变量时,它会在我的两个 R.java 文件中得到更新。现在项目 R.java 有一个名为“capture”的布局标识符,我从我的应用程序中启动了这个将布局设置为捕获的活动。我看到项目库有另一个 Rjjava 文件,其中捕获标识符是 0x7f030001。
    • 现在,如果我定义任何以 a / b 开头的布局,我的项目 R.java 中用于捕获的 id 将会改变。在这种情况下,我得到了这种意想不到的行为。我还不清楚 1. 为什么我的项目会创建两个 R.java 文件 2. 这种依赖是如何产生的。
    • 既然你的回答把我引向了正确的方向,我接受它。
    猜你喜欢
    • 2018-03-01
    • 2020-09-16
    • 1970-01-01
    • 2019-05-26
    • 2020-02-05
    • 2017-10-10
    • 2020-11-11
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多