2014-07-08 82 views
18

閱讀Android L開發人員預覽的兼容性部分(http://developer.android.com/preview/material/compatibility.html)我已經看到我可以使用L-sdk創建應用程序,並且還可以在較早的sdk上運行它(如KitKat) 。在KitKat上使用Android L材質設計

我已經使用Android L sdk創建了一個新項目,並在本文中提到了配置「build.gradle」:Android Studio : Failure [INSTALL_FAILED_OLDER_SDK]

我都試過的配置:

  • 問題提出的一個,讓我這個錯誤:

    pkg: /data/local/tmp/com.example.{my user name}.materialapp Failure [INSTALL_FAILED_OLDER_SDK]

  • 這給了我錯誤的答案提出的一個on

    <style name="AppTheme" parent="android:Theme.Material.Light"></style>

我已經在其他人上搜索了關於StackOverflow的問題,但是我找不到解決方案。

SOLUTION: Android L移動預覽材料的風格只能在運行Android L. 的「兼容性」只是一個預覽,它不是設備一起使用。

回答

11

您必須創建2個不同的styles.xml文件,其名稱與您放入不同文件夾的文件名相同。

首先,將去這裏:

res/styles.xml 

,並期待沒有對材料主題的引用(使用全息主題):

所以纔會有這樣的事情:

<style name="AppTheme" parent="android:Theme.Holo.Light"></style> 

第二個會去這裏:

res/values-v21/styles.xml 

,並將包含參照新材料主題,將有:

<style name="AppTheme" parent="android:Theme.Material.Light"></style> 

Android框架會自動使用正確的,這取決於API的設備支持(等API 21個設備將使用材料,並在所有其他設備上,它將使用您定義的任何其他設備)。

+1

我已經有2個不同的styles.xml:一個價值觀和一個價值觀-V21。但是,如果我嘗試在我的Nexus 5(與4.4.4)上部署應用程序,它會在android:Theme.Material上崩潰。Light – Luca

+0

他們是否都被命名爲「AppTheme」沒有拼寫錯誤或不同的父母? – Booger

+1

無錯別字。同樣的父母。 – Luca

1

自從最初的答案以來,這一點已經發生了變化,因爲Google在AppCompat庫(主要支持所有版本的Android)中發佈了對Material Design更好的支持。

此時,您應該使用這些庫進行所有開發,那麼您將能夠在所有應用程序中支持Material Design相關功能。

下面是如何設置它:https://developer.android.com/topic/libraries/support-library/setup.html