Eclipse中的Android Build不会在R.java中生成正确的资源ID

时间:2013-10-21 21:05:55

标签: android eclipse ant build android-resources

我有一个包含对图书馆项目的引用的Android项目。库项目包含一个资源(一个renderscript字节码包)。主项目还有自己的资源,包括布局,其中包含一个如下所示的字段:

    <EditText android:id="@+id/edit_name" />

当我在ant中构建我的主项目,并在运行时调用findViewById(R.id.edit_name)时,该调用将返回我期望的EditText组件。但是当我清理项目并在Eclipse findViewById(R.id.edit_name)中构建它们时,返回null

调试调用显示我的组件在运行时存在于View中,并且实际上已分配了id,但它与R.id.edit_name的值不同(在本例中为R中的id) java和R.id.edit_name的运行时值== 0x7f070000,而运行时存在的实际View有mId == 0x7f080000)

使用ant构建,R.java是使用R.id.edit_name === 0x7f080000创建的(它与我在运行应用程序时观察到的id相匹配。)

当我在Eclipse中删除库依赖项时,R.java包含R.id.edit_name == 0x7f070000,但运行时也是如此,一切正常。

我意识到一个好的答案是用ADT / Eclipse提交bug报告,并使用ant来构建,但我正在开发库,我想确保它支持Eclipse用户。所以我想知道的是:

  • Eclipse中是否存在可能导致此类问题的已知错误?有没有已知的解决方法?
  • 如果没有,下一个调试步骤是什么?

编辑:

事实证明这与使用Renderscript资产有关 - 当我删除renderscript时,问题就消失了(两个项目都在他们的ID中使用了07“type”标签。)我仍然完全喜欢听到一个解决方法,但是现在看来Eclipse构建的库项目中的自定义renderscripts是一个非首发。作为参考,我正在使用最新最好的Eclipse ADT(22.2.1)

0 个答案:

没有答案