2012-03-28 41 views
0

我在我的应用程序中有非常奇怪的问题。 我添加了名为add_new_item的布局文件,并且出现异常。 我甚至没有把这个XML文件设置为任何活动的内容。这个例外是在没有触及的图书馆功能中出现的。所以,当试图找到根本原因时,我试图将文件重命名为“data_entry_form”这样的名称,并且异常消失了!android依赖资源变量名

之后,我又面临一个奇怪的类似问题。我有一个图像名称为“add_new_itm”的按钮。我有一个4按钮的布局,其中之一就是这个按钮。设置好这个布局后,如果我点击其中任何一个按钮来触及另一个活动,改变手机方向并用4个按钮回到这个活动,再次按任意按钮,然后显示wahtever布局,它有“add_new_item”图像作为背景。 即4个按钮的布局(第4个是add_new_item) - >按下按钮1进入新屏幕 - >旋转手机 - >回归布局4按钮 - >再次按下按钮1 - >屏幕将有add_new_item图像作为背景占用完整的屏幕。

现在我试着只是重命名图像,按钮,一切工作正常。

能否请你解释这种奇怪的行为

回答

1

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

+0

非常感谢。我已经验证了这一点,并没有冲突。但我看到有两个R.java文件生成。在gen文件夹中,但在不同的路径下。但是在我所有的文件中,我选择了一个特定于我的项目的文件。我看到所有新变量都被添加到两个R.java文件中。这种行为是否正确 – png 2012-03-28 10:04:51

+0

我发现了一些更有趣的信息。正如我在之前的评论中提到的,我的项目有2个R.java,其中一个是图书馆项目。我观察到,当我添加一个新的资源变量,它在我的两个R.java文件中得到更新。现在R.java项目有一个名称为“capture”的布局标识符,并且在我的应用程序中,我启动了将布局设置为捕获的活动。我看到项目库有另一个Rjjava文件,其中捕获标识符是0x7f030001。 – png 2012-03-29 06:34:38

+0

现在,如果我用开始的a/b定义任何布局,我的项目R.java中的捕获ID将会改变。在这种情况下,我收到了这种意外的行为。我不清楚1.为什么我的项目创建了两个R.java文件2.这种依赖关系是如何来的。 – png 2012-03-29 06:35:05