【问题标题】:Conflicting resource id of two different project's R.java两个不同项目的 R.java 的资源 ID 冲突
【发布时间】:2010-10-18 15:22:46
【问题描述】:

我有两个不同的项目 A 和 B。在项目 A 中,我链接了项目 B 的源代码,因此项目 A 的活动可以启动项目 B 的活动。我正在使用 Eclipse Galileo。

问题是,当我想在活动 B 中编辑视图的值时,两个项目的资源 ID 中存在一些冲突。因此,当我在活动 B 中调用 findViewById() 时,我从活动 A 中获得了一个视图。

我已经在项目 A 的 AndroidManifest 中声明了活动 B。我什至尝试将活动 B 启动为应用程序的入口点,但它根本没有显示任何内容。这就像 findViewById 试图只搜索项目 A 的视图,尽管我已经正确指定了包名。

findViewById(com.my.company.projectB.R.id.someView);

有人知道发生了什么吗?我会非常感谢任何帮助。谢谢!

【问题讨论】:

  • 你想做什么?
  • 我想在活动 B 中编辑视图的值。但是当我尝试使用 findViewById 获取它时,由于 id 冲突,我从活动 A 中得到一个空值或视图。
  • ID 只是数字。为什么这两个独立的项目?您可以(并且应该)在同一个项目中进行多项活动。
  • @Yuliy 那是因为项目 B 也应该能够被另一个项目使用,比如项目 C。所以简单地说项目 A 和项目 B 做不同的事情,但是为了完成它的工作项目 A 需要项目 B 的活动。

标签: java android resources


【解决方案1】:

我发现了问题。它位于我的项目 A 清单文件中。我不应该在那里声明活动 B。所以基本上说,为了正确调用另一个应用程序(项目 B)的活动,需要做的事情是:

1)。通过运行或调试来安装应用程序 B(当然!)。

2)。在自己的项目中正确声明了活动 B 的意图过滤器。无需在将调用它的项目中声明它(这是我的错误所在)。

3)。使用intent-filter中指定的intent启动activity。

在这里发布答案以防其他人遇到与我相同的问题:)

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多