2014-07-08 48 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