2010-04-21 83 views
1

我在我的資源中定義了R.java文件和樣式的奇怪問題。風格和自動生成R.java文件的Android 1.5/1.6問題

下面是一些代碼:

在res /值/ strings.xml中:

<style parent="android:Theme.Dialog" name="PopupWindowStyle"> 
<item name="android:windowBackground">@drawable/bg1</item> 
<item name="android:textColor">@android:color/black</item> 
</style> 

在AndroidManifest.xml:

<activity 
    android:name=".RegisterScreen" 
    android:icon="@drawable/ico" 
    android:label="@string/applicationName" 
    android:theme="@style/PopupWindowStyle" 
    android:configChanges="locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale"> 
</activity> 

在自動生成的根/.../ R上。 java:

public static final class style { 
    public static final int PopupWindowStyle=0x7f090000; 
} 

After s ome在項目中發生變化,eclipse將PopupWindowStyle的自動生成值從0x7f080000更改爲0x7f090000。在此之後,在Android 1.5中,顯示RegisterScreen活動,而PopupWindowStyle風格 - 有在logcat中顯示錯誤:

Skipping entry 0x7f090000 in package table 0 because it is not complex!

在Android 1.6然而,一切工作正常 - PopupWindowStyle作品就像是它的整數值面前改變。

我正在測試這個問題,通過將源代碼恢復到舊版本。我可以證實,這個問題在src代碼提交之後開始發生,它改變了與這部分代碼完全無關的兩個文件 - 以及一個自動生成的R.java文件。

任何想法可能導致什麼?

+0

不知道,但你的主要文件,即minSdk和targetSDk標籤是什麼? – 2010-04-21 19:30:01

+0

@Fred:minSdkVersion =「3」 - 沒有targetSdk標籤。 – grzaks 2010-04-21 22:06:56

回答

0

好的。我有點解決了這個問題,但我仍然不知道爲什麼它需要在Android 1.5上這樣。

看來,它是由另一個文件引起:RES /價值/ colors.xml其中只有這樣的內容:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="threattypelabel">#4f83cc</color> 
    <color name="threattypebg">#eeeeee</color> 
</resources> 

移動的顏色標記回RES /值後/ strings.xml中突然工作正常(前後幾次測試)。

1

我今天也面臨這個錯誤。在我的情況下,有2個項目 - 一個是應用程序,另一個是圖書館。都包含字符串。在庫項目的代碼中,生成的R類文件與應用程序項目具有相同的一些字符串的整體索引。

我不得不改變應用項目的default.properties,使其包含 android.library.reference.1 = libraryprojectlocation

其中libraryprojectlocation是庫項目的相對磁盤位置。

1

我有同樣的問題,我有res/values/array.xml中的字符串數組。當我將字符串數組移動到res/values/strings.xml時,應用程序運行良好。看看Android開發站點http://developer.android.com/guide/topics/resources/providing-resources.html然而 他們明確表示可以在res/values中包含多個xml文件,事實上他們會提示它。所以我嘗試了一個實驗,將有問題的xml文件的名稱更改爲arrays.xml,最後注意多餘的「s」,然後運行。我也重啓了我的avd和eclipse。我也用gui來構建xml文件,而不是輸入它。