2012-08-23 57 views
1

昨天,我的項目正在建設和運行良好。今天,Eclipse決定不再承認我的自定義屬性。我想不出任何我會改變的事情,這會造成這種情況。我有大約二十多個充滿自定義屬性的XML佈局,並且不會重新識別它們中的任何一個。這裏的佈局之一(在res /佈局):Eclipse不再識別自定義屬性? (Android)

<?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 /價值/ 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文件被視爲有錯誤,由於IntPref.java也沒有生成R,所以也沒有問題。在過去的8個小時裏,我一直在扯掉我的頭髮,看不到任何我做錯了的事情。有什麼建議麼?

+0

你確定某個XML文件中的某個拼寫錯誤不能阻止R被建立嗎(因爲所有的東西都是混淆的)?在您的**包資源管理器**窗口中仔細檢查任何錯誤圖標,因爲我認爲您的**問題**窗口充斥着「無法找到資源」相關錯誤... – Sam

+0

XML文件中沒有任何拼寫錯誤。它說我有210個錯誤。他們似乎分裂了一半和一半之間「沒有找到屬性(我的屬性之一)的資源標識符(我的包)」,並且「R無法解析爲變量」 我注意到的一些東西...我的gen文件不包含任何與我的包的名稱?可能這只是它無法找到我的屬性的另一個症狀。 – ArtOfWarfare

+0

通常當我看到這個錯誤時,是因爲我從strings.xml中刪除了一個字符串,但仍然有一個引用它的UI元素(或類似的東西)。你沒有在res/values'文件夾中刪除整個文件(缺少資源標識符有什麼共同點,比如所有的樣式,顏色或字符串)?我假設gen文件因爲問題而關閉,而不是問題的根源。我很抱歉,除此之外,我沒有太多幫助。 – Sam

回答

0

它幾乎整整一個星期了追查什麼問題是,但我終於找到了:

不知怎的,我無意中在艙單更改包名。

作爲每個人的一般調試技巧,我要說什麼幫助我跟蹤了這​​個問題:我查看了在這個問題當天左右在提交中更改的文件(整個項目在GitHub上)發生了。我注意到一個提交,其中一個類似項目的大部分清單被複制到這個項目中,包括類似包的包名稱。因此,在這個項目的清單中,包名如何被改變,因此使其如此特徵的問題不再被認可。看起來這是那種不可能發生的問題,以至於沒有人會擁有它,但爲了萬一它確實發生了,那就是我的問題的答案最終成爲了。

0

嘗試重新啓動eclipse以查看是否修復了它。

+0

這是我嘗試的第一件事情之一。不幸的是,它並沒有解決我的問題。 – ArtOfWarfare

0

我有一個類似的問題,其中月食沒有看到他們作爲android xml佈局。我必須通過右鍵單擊佈局文件夾/ new/other/Android Xml佈局文件來重新創建它們,然後將佈局粘貼到新佈局文件夾中。

刪除或保存舊的並從項目菜單中清理項目。

此外,您應該仔細檢查您的活動頂部的導入,如果您在導入中有一個對an​​droid.R的引用,它會假設其餘部分來自android系統資源。

+0

複製,刪除,清理,粘貼,再次清理,它給我留下了完全相同的問題。 我也驗證過,我從來沒有輸入R. – ArtOfWarfare

+0

對不起,以爲它可能與我的問題類似。您可能還會檢查您是否針對項目屬性Java Compiler部分的Java 1.6而不是1.5。 –

+0

我只是雙重檢查。我的目標是Java 1.6。 – ArtOfWarfare

相關問題