注:非5.0特定的开发问题,可以在这个帖子里查:Android开发问题汇总

1、官方提供的例子android-support-v7-appcompat编译时提示android:actionModeShareDrawable属性不存在

官方例子里这个工程的target是19,需要改为21才能正确编译,否则提示“error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.”。具体方法是修改project.properties文件,将target=19改为target=21,然后clean此工程或重启eclipse即可。参考链接

若仍然无法编译,可能是appcompat的版本不是最新,请通过sdk manager将support包全部升级到最新版(见下图,图片来自这里。国内用户如果无法升级,可修改hosts文件将dl-ssl.google.com静态解析到可访问的ip地址,ip地址可参考这个帖子,在超级ping里获取到)。

2、parseSDKContent failed问题

升级sdk到5.0以后,原来的Eclipse经常弹出parseSDKContent错误对话框,甚至有时会提示AndroidManifest file missing。

解决方法是删除.android目录(参考链接,在windows里这个目录是C:\Documents and Settings\YOUR_USER_NAME\.android或C:\Users\YOUR_USER_NAME\.android),不过这样会同时删除掉debug.keystore文件。也有人说不需要删除整个.android目录,更新DDMS就可以了(是指更新ADT?),但我没有试过。

3、谷歌开源的Material Design图标

可以从GitHub上下载,链接在此。另外,materialdesignicons.comandroidicons.com这两个网站也提供了一些不错的material design图标下载。

其他开源图标库:阿里巴巴提供的iconfont.cn,图标社区NounProject

在线LowPoly生成器:Trianglify

4、PreferenceActivity不显示actionbar

参考这个帖子,目前support包不支持PreferenceActivity(没有PreferenceActionbarActivity这样的类),所以解决方法要么是改用PreferenceFragment,要么使用第三方的补丁包(Fragment的方案),另一个补丁包(Activity的方案,但有缺陷——getPreferencesXmlId()只接受一个preference.xml文件)。

5、Dialog Theme的actionbar背景颜色显示不全

如下图所示,当使用Theme.AppCompat.Light.Dialog时发现actionbar背景色只显示出一半。根据这个帖子的讨论,可能是AppCompat的目前版本还没有做好。

6、使用appcompat里RecyclerView和CardView时的问题

GitHub上的这个开源项目可以帮助解决一些问题,例如添加divider、点击事件等等,但还远远不够。

CardView的多状态背景色问题,暂时没有解决,参考链接

下拉刷新:可使用android原生的SwipeRefreshLayout解决;

上拉翻页:方案1)仍使用SwipeRefreshLayout; 方案2)自己监听事件实现Endless效果;

HeaderView:RecyclerView没有像ListView那样提供addHeaderView()方法,要实现类似效果,有两种方法:1)将第一个item作为header,使用android-parallax-recyclerview这个库; 2)让第一个item完全透明,下层显示一个同高的view作为header,使用ASOV这个库。

7、实现Material Design(简称MD)的方方面面

MD是一系列UI特性的组合,阿里巴巴团队的这个帖子介绍得清晰易懂,但要在我们的应用里逐一实现这些特性就不那么容易了,特别是要兼容Android 4.x甚至2.x的时候。Google官方AppCompat v21在这方面只提供了有限的支持,例如ActionBar和侧滑菜单,而像FAB(Fixed Action Button)等等则没有包含在内。

其实在GitHub上已经有不少第三方的实现,值得一提的是,这个名为MaterialDesignCenter的项目把大量相关项目汇总在了一起供开发者参考,值得一看。以下列出我认为值得使用的第三方实现:

FAB: FloatingActionButton

对话框: material-dialogs

各类UI控件: MaterialDesignLibrary

另外几个汇集了android上各类交互效果的项目Interactive-animationawesome-android-uiandroid-open-project(300+项目,不仅限于MD),同样值得参考。

8、使用SlidingTabLayout替代Actionbar的tab导航

v7包的Actionbar对象里,与navigation有关的方法(例如setNavigationMode)都不建议使用了,应使用googleio2014提供的SlidingTabLayout实现类似功能。

参考链接1参考链接2

9、Android 5.1将AlarmManager的setInterval()最小值限制为1分钟

这个比较坑,毕竟有一些应用依赖AlarmManager机制进行更新,当设备升级到android 5.1后就会出现问题。由于开发文档里并没有提到,所以具体情况见googlecode上的讨论。讨论链接需FQ,google主要回复如下:

“If you are trying to run more often than every 5 seconds, alarms are the wrong way to go about it. Waking up the device that often is extremely bad for battery life. If you have live UI that needs to be updated continually, use a wakelock and then schedule your activity on a handler. This is actually *more* battery efficient than setting an alarm every second.”

替代方法是在Service里使用ScheduledExecutorService实现定时任务,与AlarmManager的区别见 参考链接

10、使用Android Support Design开发包实现Material Design

Google在2015 I/O大会推出了Android Support Design开发包,方便开发者实现多种常用的MD效果。以下几个有用链接:

INTRODUCTION TO COORDINATOR LAYOUT ON ANDROID

(译)掌握 Coordinator Layout

高逼格UI-ASD(Android Support Design)

NestedScrollView

CoordinatorLayout与滚动的处理

Android Design Support Library使用详解

(未完待续)

Android 5.0/5.1开发问题专贴的更多相关文章

  1. 另辟思路解决 Android 4.0.4 不能监听Home键的问题

    问题描述: 自从Android 4.0以后,开发人员是不能监听和屏蔽Home键的,对于KEYCODE_HOME,官方给出的描述如下: Home key. This key is handled by ...

  2. Android 5.0 技术新趋势

    由于 Android 的版本分裂比较严重,整个新系统升级可能需要一两年甚至更长时间.所以目前使用 Android 5.0 的大部分是喜欢尝鲜的用户,同时现在市场上能够很好支持 Android 5.0 ...

  3. 深入浅出 - Android系统移植与平台开发(三)- 编译并运行Android4.0模拟器

    作者:唐老师,华清远见嵌入式学院讲师. 1.   编译Android模拟器 在Ubuntu下,我们可以在源码里编译出自己的模拟器及SDK等编译工具,当然这个和在windows里下载的看起来没有什么区别 ...

  4. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  5. android 5.0开发环境搭建

    Android 5.0 是 Google 于 2014 年 10 月 15 日发布的全新 Android 操作系统.本文将就最新的Android 5.0 开发环境搭建做详细介绍. 工具/原料 jdk- ...

  6. 腾讯云安全:开发者必看|Android 8.0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  7. Android开发之深入理解Android 7.0系统权限更改相关文档

    http://www.cnblogs.com/dazhao/p/6547811.html 摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限 ...

  8. visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

    一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...

  9. Android 9.0/P 开发问题及解决方案汇总

    一.使用 org.apache.http.legacy 库在Android 9.0上运行出现崩溃 日志内容: java.lang.NoClassDefFoundError: Failed resolu ...

随机推荐

  1. URLEncoder编码

    客户端在进行网页请求的时候,网址中可能会包含非ASCII码形式的内容,比如中文. 而直接把中文放到网址中请求是不允许的,所以需要用URLEncoder编码地址, 将网址中的非ASCII码内容转换成可以 ...

  2. CSS样式之语法

    选择符 选择符 {属性1:属性值1;属性2:属性值2} 选择符(selector):指定样式适用的标签,除指定标签外,样式不起作用 属性:样式的关键字 属性值:描述样式的值: 格式:属性与属性之间使用 ...

  3. highcharts 使用实例

    后端使用django实现,返回的数据可以修改为从数据库获取或其他方式获取,实例里是写死的数据. urls配置: url(r'^outip/chart/$', views.charts), url(r' ...

  4. textarea 在不同浏览器高宽不一致的兼容性问题

    在html,很多同学喜欢使用rows.cols,来设置textarea的高宽,却发现,在火狐跟其他浏览器,好像高宽却不一致! 因为这是火狐的一个bug, https://bugzilla.mozill ...

  5. 关于iphone、安卓手机VPN全面解析

    现在智能手机功能越来越强大,网络APP层出不穷,社交大佬facebook.twitter等纷纷推出了自己的社交APP应用,大部分手机已经内置了很多社交应用,包括facebook等:android.io ...

  6. mac配置java开发环境: jdk1.7 +sdk1.7+maven +tomcat

    1.先安装jdk ,才能安装sdk .2 mac中jdk1.7的默认位置:/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home ...

  7. 关于卡尔曼滤波(Kalman Filter)的很好讲解

    http://bilgin.esme.org/BitsAndBytes/KalmanFilterforDummies C#代码: double[] Data = new double[] { 0.39 ...

  8. 信心题--FUOJ2226(莫队算法)

    http://acm.fzu.edu.cn/problem.php?pid=2226 信心题,还说是信心题,题目给的真好.但是一点都不像信心题. 又是一个新的算法,莫队算法 莫队算法是一个用数组就可以 ...

  9. python import 模块异常问题

    新项目开始了,(tornado,python) 结果出现了一个比较诡异的问题. import 自己的在conf文件夹下配置文件settings的时候, from conf.settings impor ...

  10. 3D扫描系统的构建(待处理)

    1. http://www.zhihu.com/question/32143353 是否可以 DIY 一个 3D 扫描仪或者开源 3D 扫描项目? 详细的原理介绍 2. http://www.csks ...