4

我有一个包含对库项目的引用的 Android 项目。库项目包含一个资源(一个渲染脚本字节码包)。主项目也有它自己的资源,包括一个布局,其中包含一个如下所示的字段:

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

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

调试调用显示我的组件在运行时存在于视图中,并且实际上分配了一个 id,但它与 R.id.edit_name 的值不同 id(在这种情况下,R.java 中的 id 和R.id.edit_name 的运行时值 == 0x7f070000,而运行时存在的实际视图具有 mId == 0x7f080000)

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

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

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

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

编辑:

事实证明,这与使用渲染脚本资产有关——当我删除渲染脚本时,问题就消失了(两个项目在他们的 id 中都使用了 07“类型”标签。)我仍然非常想听听一个解决方法,但是对于现在看起来 Eclipse 构建的库项目中的自定义渲染脚本是一个非初学者。作为参考,我使用的是最新最好的 Eclipse ADT (22.2.1)

4

0 回答 0