如果您使用Android L构建,则无法在较早版本的Android上运行您的应用程序

问题描述:

我正尝试在我的应用程序上使用材质设计,因此我创建了值-v21文件夹并在我的styles.xml中包含以下内容文件:如果您使用Android L构建,则无法在较早版本的Android上运行您的应用程序

<style name="AppBaseTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
</style> 

<style name="ActionBar" parent="@android:style/Widget.Material.Light.ActionBar"> 
    <item name="android:background">#333333</item> 
    <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item> 
</style> 

<style name="ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title"> 
    <item name="android:textColor">#fa6900</item> 
    <item name="android:textStyle">bold</item> 
</style> 

这给了我下面的错误,除非我把我的构建目标至Android L:

的项目

错误检索父:没有资源发现,匹配给定名称“机器人:Theme.Material .Light.DarkActionBar'

改变我的构建目标,以Android L系统后,该错误消失,但这样做让我以下错误:

平台L是一个预览,需要应用程序清单到的minSdkVersion设置为“L”的AndroidManifest.xml

是否有使用Material Design并且minsdkversion低于“L”?

+0

材质主题目前尚未在支持库中提供,因此预期为 –

+0

因此,“预览”部分中,您可能不希望将支持L和API的应用程序发送至其下方,因为它可能会更改。 – Ayub

+0

好的,那么目前还没有办法用材料设计发布应用程序,而没有使其开发预览独占? – NStorm

我还没有深入L预览,但最初我认为你可以从SDK文件夹中获取一些xml文件以及drawables。

的SDK文件夹,你应该考虑在于:

SDK_PATH/platforms/android-L/data/res/values

SDK_PATH/platforms/android-L/data/res/drawables和等

这样的:

“styles_material.xml”

<style name="Widget.Material.Button.Toggle"> 
    <item name="background">@drawable/btn_toggle_material</item> 
    <item name="textOn">@string/capital_on</item> 
    <item name="textOff">@string/capital_off</item> 
    <item name="minHeight">48dip</item> 
</style> 

和你可以按照路线找到btn_toggle_material里面的drawable文件夹。

“btn_toggle_material.xml”

<inset xmlns:android="http://schemas.android.com/apk/res/android" 
    android:insetLeft="4dp" 
    android:insetTop="4dp" 
    android:insetBottom="4dp" 
    android:insetRight="4dp"> 
    <layer-list android:paddingMode="stack"> 
     <item> 
      <ripple android:color="?attr/colorControlHighlight"> 
       <item> 
        <nine-patch android:src="@drawable/btn_toggle_mtrl_alpha" 
         android:tint="?attr/colorButtonNormal" /> 
       </item> 
      </ripple> 
     </item> 
     <item> 
      <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
       <item android:state_checked="false"> 
        <nine-patch android:src="@drawable/btn_toggle_indicator_mtrl_alpha" 
         android:tint="?attr/colorControlNormal" /> 
       </item> 
       <item android:state_checked="true"> 
        <nine-patch android:src="@drawable/btn_toggle_indicator_mtrl_alpha" 
         android:tint="?attr/colorControlActivated" /> 
       </item> 
      </selector> 
     </item> 
    </layer-list> 
</inset> 

这是一个繁琐的工作,但有些人也做了类似的工作,以“河洛Everwhere”库中的“河洛风”的时代。

希望它有帮助。