gpt4 book ai didi

android - 无法在android库项目中添加id资源类型文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:40 29 4
gpt4 key购买 nike

在我的 android 应用程序中,我创建了 2 个项目。主项目和一个库,因为它也将在未来的项目中使用。因为我想在代码中引用一些 View ,所以我尝试创建一个资源类型文件来声明一些唯一的 ID,如此处所述 http://developer.android.com/guide/topics/resources/more-resources.html#Id .

问题是,当我将此文件添加到 res/values(称为 ids.xml)时,R 文件不再生成。当我删除它时,一切正常。

我知道我可以在android项目中添加一个id资源类型文件。在图书馆项目中做同样的事情是否有限制?

谢谢,账单

最佳答案

经过 2 天的研究,我终于找到了解决方案。

帖子 [此处][1]

[1]: Android style Resources compile (aapt) failing : Bad resource table: header size 0xc帮助了我。

无论是 Android 项目还是库项目都没有关系,但是当您在其中一种样式中声明了新的 id 时,您就无法添加 ids.xml 文件来声明唯一的 id。

在我的例子中,我在 res/values/styles.xml 中声明了一个样式

<style name="ActionBar">
<item name="android:id">**@+id/actionbar_container**</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">@dimen/actionbar_height</item>
<item name="android:orientation">horizontal</item>
<item name="android:background">@drawable/actionbar_gradient</item>
</style>

然后添加了一个 res/values/ids.xml,我在其中声明了一些唯一的 ID。例如,

<resources>
<item type="id" name="menu_refresh" />
</resources>

添加此文件后,R 停止生成。 Project Clean 没有做这项工作。

当我将 styles.xml 中的声明更改为 @id/actionbar_container 时,R 再次开始生成。区别在于我在 ids.xml 文件中声明了 id,而我在上面的样式中使用 @id 而不是 @+id 进行引用。

结论:如果您想在资源文件(即 ids.xml)中声明唯一 ID,请仔细检查您是否首先在样式中声明了任何新 ID(使用 @+id 语法)。

希望对遇到同样问题的人有所帮助。

编码愉快!!!

关于android - 无法在android库项目中添加id资源类型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934222/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com