2016-08-17 122 views
3

我很難在Xamarin Studio中編譯我的Android應用程序。在出現的錯誤如下:找不到與指定名稱相匹配的資源attr「colorPrimary」

沒有資源發現在給定name屬性 「colorPrimary」

這指的是我的styles.xml匹配:

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar"> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <!--item name="colorPrimaryDark">@color/colorPrimaryDark</item--> 
     <!--item name="colorAccent">@color/colorAccent</item--> 
    </style> 
</resources> 

通常在線發現的建議是將SDK版本設置爲21或更高。但我已經嘗試過:

  • 設置的minSdkVersion至21日在清單
  • 設置targetSdkVersion至21日在清單
  • 設置taget框架,Android在項目設置5.0
  • 清理和重建項目

錯誤依然存在:-( 是否需要其他設置才能使其工作?

+1

您是否在您的顏色xml文件中創建了colorPrimary值? –

+3

你試過'android:colorPrimary'嗎? –

+1

哈,那個伎倆:-) – Boris

回答

6

這是我的項目工作。

res/values-v21/styles.xml

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar"> 
    <item name="android:colorPrimary">@color/primaryColor</item> 
    </style> 
</resources> 

res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="colorPrimary">@color/primaryColor</item> 
    </style> 
</resources> 
-2

你所做的是聲明你的風格的colorPrimary是你風格的colorPrimary ......沒有意義。

你應該申報至極的顏色是:

<style name="_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">#6c0e54</item> 

如果要定義另一個顏色和調用它的樣式創建像一個XML文件:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <color name="apptheme_color1">#9D3F86</color> 
    <color name="apptheme_color2">#84226C</color> 
    </resources> 

,然後你可以做:

<style name="_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/apptheme_color1</item> 
+0

不是嗎?我指的是我的colors.xml中的顏色 – Boris

+0

編輯如何聲明和調用顏色 – Mulflar

+0

這正是我所做的。即使你的第一個建議會產生相同的錯誤......問題不在於未找到顏色,而在於colorPrimary屬性。 – Boris

3

您應該直接從材料設計文檔(https://developer.android.com/training/material/theme.html#ColorPalette)遵循約定:

<resources> 
    <!-- inherit from the material theme --> 
    <style name="AppTheme" parent="android:Theme.Material"> 
    <!-- Main theme colors --> 
    <!-- your app branding color for the app bar --> 
    <item name="android:colorPrimary">@color/primary</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="android:colorPrimaryDark">@color/primary_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="android:colorAccent">@color/accent</item> 
    </style> 
</resources> 

你缺少什麼這裏是android:的名字空間前綴colorPrimary項目。因此,它無法找到相應的屬性,因爲它未在範圍中定義。

否則,你將需要從主題

parent="@android:style/Theme.Material.Light.DarkActionBar" 
-1

刪除android:前綴res\values\colors.xml

<color name="colorPrimary">#3F51B5</color> 
<color name="colorPrimaryDark">#303F9F</color> 
<color name="colorAccent">#FF4081</color> 

添加該代碼現在同步你的項目。

+0

OP不想簡單地硬編碼值,他們想要從他們的colors.xml中讀取'colorPrimary',並從中派生出另外兩種顏色。 – MMAdams

+0

請建議一些通用的方法來解決問題。 –

相關問題