1

昨天,我的项目正在构建和运行良好。今天,Eclipse 决定不再识别我的自定义属性。我想不出任何我改变的东西会导致这种情况。我有大约 2 打包含自定义属性的 XML 布局,但它无法识别其中的任何一个。这是其中一种布局(在 res/layout 中):

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:aes="http://schemas.android.com/apk/res/com.aes.androidapp"
                  android:title="@string/ffour_analog_in_1">
    <com.aes.androidapp.IntPref android:title="@string/ffour_calibration_offset"
                                android:summary="@string/ffour_calibration_offset_sum"
                                android:key="ffour_ain1_calibration_offset"
                                android:defaultValue="0"
                                android:digits="-1234567890"
                                android:gravity="right"
                                android:inputType="numberSigned"
                                aes:range="-19999:30000"/>

    <com.aes.androidapp.IntPref android:title="@string/ffour_filter_time"
                                android:summary="@string/ffour_filter_time_sum"
                                android:key="ffour_ain1_filter_time"
                                android:defaultValue="0"
                                android:digits="-1234567890"
                                android:gravity="right"
                                android:inputType="numberSigned"
                                aes:range="-600:600"/>
</PreferenceScreen>

这是我的属性文件(res/values/attrs.xml):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="IntPref">
        <attr name="range" format="string" />
        <attr name="condition" format="string" />
    </declare-styleable>
</resources>

由于 XML 文件被视为有错误,因此不会生成 R,因此 IntPref.java 也有问题。在过去的 8 个小时里,我一直在为此扯头发,看不到我做错了什么。有什么建议么?

4

3 回答 3

0

尝试重新启动 Eclipse 以查看是否可以解决问题。

于 2012-08-23T20:22:56.533 回答
0

我遇到了类似的问题,eclipse 没有将它们视为 android xml 布局。我必须通过右键单击布局文件夹/new/other/Android Xml 布局文件来重新创建它们,然后将您的布局复制粘贴到新布局中。

删除或保存旧的并从项目菜单中清理项目。

此外,您应该在活动顶部仔细检查您的导入,如果您在导入中有一个对 android.R 的引用,它将假定其余部分来自 android 系统资源。

于 2012-08-23T20:24:54.770 回答
0

花了将近整整一周的时间才找到问题所在,但我终于找到了:

不知何故,我无意中更改了清单中的包名称。

作为每个人的一般调试提示,我将说是什么帮助我找到了这个问题:我查看了在此问题发生当天/前后在提交中更改的文件(整个项目在 GitHub 上)。我注意到一个提交,其中一个类似项目的大部分清单被复制到这个项目中,包括类似包的包名。因此,该项目清单中的包名称是如何更改的,因此导致它的属性不再被识别的问题。似乎这是一种不太可能发生的问题,以至于没有人会遇到它,但万一它确实发生了,这就是我的问题的最终答案。

于 2012-08-29T14:17:31.800 回答