android - 在 KitKat 上使用 Android L Material Design

标签 android gradle android-studio android-5.0-lollipop

阅读 Android L Developer Preview (http://developer.android.com/preview/material/compatibility.html) 的兼容性部分,我发现我可以使用 L-sdk 创建一个 APP,也可以在旧的 sdk(如 KitKat)上运行它。

我使用 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]

  • 以及在回答中提出的一个在

    上给我错误的答案

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

我在 StackOverflow 上搜索了其他问题,但找不到任何解决方案。

解决方案: Android L preview Material 样式只能在运行 Android L 的设备上使用。 “兼容性”只是一个预览,并没有启用。

最佳答案

您必须创建 2 个不同的 style.xml 文件,名称相同,然后放在不同的文件夹中。

第一个,会到这里:

res/styles.xml

并且看起来没有对 Material 主题的引用(使用 Holo 主题):

所以会有这样的事情:

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

第二个会在这里:

res/values-v21/styles.xml

并且将包含对新 Material 主题的引用,并且会:

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

Android 框架将根据设备支持的 API 自动使用正确的框架(因此在 API 21 设备上它将使用 Material,而在所有其他设备上,它将使用您定义的任何其他内容)。

关于android - 在 KitKat 上使用 Android L Material Design,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24633162/

相关文章:

java - 使用 Gradle Kotlin DSL 和 Intellij 的自定义测试源集

gradle - 寻找 JavaFX 应用程序的 Javapackager gradle 集成示例

android - 添加翻译数量多于应用程序的库会在 string.xml 中产生错误

gradle - Android Studio 构建项目时出现断言错误

android - com.crashlytics.android.CrashlyticsMissingDependencyException 在 android studio 项目上的 gradle 'testDebug' 期间

android - 通过 Web 服务将 ArrayList 从 Android 应用程序发送到远程数据库

java - 如何解决java.lang.ClassNotFoundException:org.gradle.wrapper.GradleWrapperMain错误?

java - Android/Java 中的 Apidaze REST API HTTP POST 调用

javascript - getElementsByTagName 导致 NullPointerException

javascript - 如何从另一个js文件使用setActiveTab