【问题标题】:Eclipse No Longer Recognizing Custom Attributes? (Android)Eclipse 不再识别自定义属性? (安卓)
【发布时间】:2012-08-23 20:11:17
【问题描述】:

昨天,我的项目正在构建并运行良好。今天,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 个小时里,我一直在为此扯头发,看不到我做错了什么。有什么建议吗?

【问题讨论】:

  • 您确定 XML 文件中的某些拼写错误不会阻止 R 的构建(因此会混淆所有内容)吗?在您的 Package Explorer 窗口中仔细检查是否有任何错误图标,因为我假设您的 Problems 窗口中充斥着“找不到资源”相关的错误...
  • XML 文件中没有任何拼写错误。它说我有 210 个错误。它们似乎在“没有为包(我的包)中的属性(我的属性之一)找到资源标识符”和“R 无法解析为变量”之间分割了一半我注意到的东西......我的 gen文件不包含任何以我的包裹名称命名的内容?可能这只是它无法找到我的属性的另一个症状。
  • 通常当我看到这个错误时,是因为我从 strings.xml 中删除了一个字符串,但仍然有一个 UI 元素引用它(或类似的东西)。您没有删除res/values 文件夹中的整个文件(缺少的资源标识符是否有任何共同点,就像它们都是样式、颜色或字符串一样)?我认为 gen 文件是因为问题而不是问题的根源而关闭的。很抱歉,除此之外我帮不上什么忙。

标签: android eclipse android-resources declare-styleable


【解决方案1】:

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

【讨论】:

  • 这是我尝试的第一件事。不幸的是,它没有解决我的问题。
【解决方案2】:

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

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

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

【讨论】:

  • 复制、删除、清理、粘贴、再次清理,它给我留下了完全相同的问题。我还验证了我从不导入 R。
  • 抱歉,我认为这可能与我的问题类似。您还可以检查项目属性 Java 编译器部分的目标是否为 java 1.6 而不是 1.5。
  • 我只是仔细检查了一遍。我的目标是 Java 1.6。
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2021-05-27
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多