我最近下载了Android Lollipop SDK,并且我已经更新了所有依赖项,修复了我的构建路径并导入了以下支持库而没有问题:
机器人支撑-V7-程序兼容性 Android的支持-V7-网格布局 Android的支持-V7-mediarouter 机器人支撑-V7-调色板
我的应用程序使用蓝牙低功耗,所以我的minSDK版本是18,targetSDK是最新的; 21。
当我尝试使用以下xml来应用Material Theme时(使用appcompat-v7),我的问题出现了:
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="colorPrimary">@color/material_blue_500</item>
<item name="colorPrimaryDark">@color/material_blue_700</item>
<item name="colorAccent">@color/material_green_A200</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<!-- <item name="android:actionBarStyle">@style/AppBaseActionBar</item> -->
</style>
<!-- the theme applied to the application or activity -->
当我尝试运行时,我收到以下错误:
错误:找不到与给定名称匹配的资源(&#39; colorAccent&#39;值为&#39; @ color / material_green_A200&#39;)
经过一段谷歌搜索后,我发现3天前更新了这个github存储库:gist.github.com/eyecatchup/b5e564cfe11619cc3999
在那里,定义了大多数Material Design颜色,所以我只是将它复制到我的主题color.xml中。
然后我得到以下错误,尽管该行在xml:
中错误:找不到与给定名称匹配的资源(&#39; bright_foreground_material_light&#39;值为&#39; @ color / black&#39;)。
无论如何,我删除了该特定行,并在手机上成功安装了该应用。但是,主题仍然是Holo而不是Material。
有谁能告诉我我做错了什么? docs非常明确地说我可以在低于5.0的版本中使用Material主题,并且我按照here列出的有关保持兼容性的说明进行操作。
非常感谢帮助。
答案 0 :(得分:1)
事实证明我只是在我的values文件夹中将主题应用于我的自定义主题,而values-v11和values-v14主题xml保持不变。
修复后,我通过几乎更新我的活动来运行物质主题,以将ActionBarActivity和我的片段管理器扩展到getSupportFragmentManager()
管理器,而不是getFragmentManager()
。
如果您碰巧使用导航抽屉,在getActionBar中,在为ListView设置适配器时,您需要将ActionBar强制转换为SupportActionBar,如下所示:
private ActionBar getSupportActionBar() {
return ((ActionBarActivity)getActivity()).getSupportActionBar();
}
并按照您通常的意愿设置适配器:
mDrawerListView.setAdapter(
new ArrayAdapter<String>(getSupportActionBar()
.getThemedContext(),
R.layout.fragment_navigationdrawer_textview,
android.R.id.text1, drawerOptions));
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
希望能帮助任何有同样问题的人。祝你好运。
答案 1 :(得分:-1)
你必须创建新的项目然后Id会自动生成appcompat_v7库,然后右击你的旧错误项目点击属性然后点击android并在你的项目中添加appcompat_v7库。