背景
此文纯粹总结开发Android以来遇到的一些坑,一来为了防止再次掉坑,二来是希望后面的朋友能躲开这些坑。另外还编写了《 Android开发中常犯的错误》。

包名重复问题
由于Google Palyer没有在中国登陆,中国存在有非常多的Android应用商城,而且这些商城并没有联合起来对APP包名进行检测,所以你APP中使用的包名很有可能会跟别人的APP重复。那么小明手机装了别人的应用,就装不上你的应用了。
建议:
1.包名定义要有一定的技术,尽量避免太容易重复的包名,如:com.digital.home。
2.要确定包名前,可以将应用发到一些测试网站去测试,比如testin,它会将的你APP安装到20台机,看能否全部正常安装。

textSize单位问题
Android Studio提示所有textSize的单位都应该使用sp,因为这样该text就能够随用户在系统setting里设置的字体大小的改变而改变。那么如果你使用了sp作单位,那么建议你调整setting字体至最大或最小后,看UI是否还能正常显示。我个人使用了不规范的dp作为单位。

小米手机图标异常问题
在别的手机显示没有这问题,在小米手机显示就有下图的问题,解压apk包也没发现该图标。其实这是小米手机的BUG,解决方法是将APP上传至小米应用商城,它会要求你上传一整套桌面图标icon。

部分手机因权限问题无法安装应用问题
一时记不起是什么手机,大概是中兴还是乐视手机,只需要在AndroidManifest.xml里增加一个自定义权限就可以了。

<permission android:name="cus.permission.com.xxx.xxx"android:protectionLevel="normal"/>

魅蓝手机EditText的enabled属性无用问题
在xml里面让EditText不可编辑状态,是设置android:enabled=”false”,但是发现在魅蓝note2这样设置后还是可以编辑,再加上下面这句就可以了。

mPhoneNumEt.setEnabled(false);

百度更新与360更新冲突问题
之前应用集成了百度更新与360更新,然后上传至360后台发布,但是审核不通过,解决方法只需要把AndroidManifest.xml里百度相关的xml屏蔽再打包即可。

集成腾讯X5 WebKit无法读取SD卡html文件问题
将html文件放到/data/data/com.example.demo/files/ 里面,结果发现X5根本无法读取,后来通过跟腾讯工作人员沟通,原来旧版本的X5只允许读取/sdcard 和私有目录下的/data/data/com.example.demo/files/public目录,其他目录的调用都被禁止了。
我手机上的X5版本是2258,而新的版本如3321已经不再限制了,所以要兼容低版本的X5内核,还是需要把文件放在public目录下。更详细的集成方案请阅读《集成第三方组件–Android APP集成腾讯X5 WebKit》

AsyncTask
AsyncTask只能执行简短任务,执行长时间耗时任务会阻塞其他使用AsyncTask的任务。在项目中慎用,我踩过关于它的坑是在轮播图里使用了它,导致其他AsyncTask阻塞,不能正常使用。比如集成七鱼客服SDK无法获取相册图片,比如获取短信验证码倒计时无法正常倒计时。详细可参考:AsyncTask 使用和缺陷

集成个推SDK的坑
个推最近推出了2.9.0版本的SDK,集成后打包apk文件,发现Android 5.0以上的系统都无法安装,显示“应用未安装”,只能使用之前的2.8.1.0的版本,这个问题在他们Demo也已经验证过,各位要注意。

签名问题
生成签名文件xxx.jks,两个StorePassword和KeyPassword都没有错,但是还是提示:Cannot recover key,后来删掉xxx.jks ,重新生成,并设置StorePassword和KeyPassword为同一个密码,然后就可以了。

奇葩所在:
没来得及分析这是为什么,因为我现在用的其他签名文件两个密码不一致也没问题。后面我再次尝试使用不一样的密码,发觉原理问题不存在了。

可能的原因:
1.是IDE的BUG,重启IDE就能搞定;

WebView加载htm影响原生页面工作
公司项目使用HyBrid方式开发,直到有个页面需要使用动画、设置View显示隐藏、设置View的高度、刷新GridView数据,但是发现加载a.html后这些功能全部失效或异常了,而选择加载b.html就没问题,而且这个只发生在我的4.3手机上。

奇葩所在:
不知道确切原因,问题还没解决。

可能原因:
1.htm某些功能影响了原生页面?
2.加载这个页面是否需要开启某些功能?

WebView加载html页面后,部分手机显示页面过大
两台手机加载同一个html页面,一个正常显示,另一个页面显示不全,可以左右滑动,这个问题已经解决,问题是另一台手机调整了系统字体大小导致。解决方法是设置WebView显示为normal字体大小,代码如下:

webSetting.setTextSize(WebSettings.TextSize.NORMAL);
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);

提示“应用未安装”
手机连接usb线的时候可以安装,但是下载apk安装却提示“应用未安装”,今天也发现支付宝出现了这个问题。原因是我们打包的apk不完整或路径有问题导致,我这里发现的问题是在使用Gradle打包.so文件打包方式不对,最后参考http://blog.csdn.net/wulianghuan/article/details/44567001。

待续……

Android开发中需要注意的坑相关推荐

  1. android 多进程 坑,Android 开发中踩过的坑之八:多进程问题

    这是个需要细心处理的坑. 1 内存: 在manifest中可以对各个组件声明其所在的进程: android:process=":name" 然后对应的Acitivity, Rece ...

  2. 史上最全Android开发中100%会用到的开源框架整理(1/5)

    其实这个开源框架整理很久了,只是一直放在有道云笔记里面,笔者还有很多写得文章都放在有道云笔记里面,有时间都好好整理一下放出来,本篇文章也会不定期更新,由于整理的开源框架分类都有200多个,所有这次只将 ...

  3. C/C++在Android开发中的应用

    JNI开发系列阅读 JNI与底层调用1:http://blog.csdn.net/axi295309066/article/details/60758515 JNI与底层调用2:http://blog ...

  4. 在Android开发中怎样使用Application类

    转载地址:http://www.jianshu.com/p/3138f9c351e8 --- 在Android开发中怎样使用Application类 自己独立开发项目才发现以前对Application ...

  5. android动态添加圆,Android开发中TextView 实现右上角跟随文本动态追加圆形红点

    在一个比较坑的需求里,一段文字右上角需要追加一个圆形红点.最右侧有个金额,红点动态随着文字移动,然后各种摆布局,一下午坑死我了.后来果断放弃.然后就想试试直接自定义view来实现这个需求. 最坑的就是 ...

  6. android最佳开发实现_在android开发中使用可访问性最佳做法

    android最佳开发实现 As you know, accessibility is about building products that everyone can use easily and ...

  7. Android开发中的日常积累

    欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存 ...

  8. Android 开发中的日常积累

    Android 性能优化 Android性能优化视频,文档以及工具 胡凯-性能优化 Android最佳性能实践(1):合理管理内存 Android最佳性能实践(2):分析内存的使用情况 Android ...

  9. android开发ImageButton图片透明化的坑

    android开发ImageButton图片透明化的坑 问题点 图片不透明有一圈白 解决方法 使用美图秀秀抠图保存为.jpg图片格式,更换原有图片发现无效还是有一圈白, 在次分析还是图片的问题,发现图 ...

最新文章

  1. 小牛生产小牛的问题解决集粹
  2. 【Python初学者】准备
  3. 基于rancher在线安装k8s集群
  4. Java中abstract与interface
  5. .NET Core 使用Topshelf方式创建Windows服务
  6. 医疗保健数据接口_应用的大数据:医疗保健的经济学
  7. webdriver---API---(java版) 高级应用
  8. 3分钟学会python_3分钟学会,学会用Python正确读取大文件
  9. 苹果Mac重复文件清理工具:​​​​Tidy Up
  10. pid温度控制算法c语言程序,温度控制的PID算法的C语言程序
  11. Excel学习笔记3||逻辑函数AND、OR、NOT、XOR、IF、IFS和查找函数VLOOKUP
  12. 泰晤士计算机专业排行,泰晤士2021世界大学学科排名:世界大学计算机学科排名...
  13. python实现cab文件解压
  14. IV-18(前苏联ИВ-18)荧光管电子钟【Energy Pillar.能量柱】
  15. 青蛙跳台阶 php,php中青蛙跳台阶的问题解决方法
  16. 用JavaScript实现,用户输入自己的汽油编号,然后输入自己加多少升,就弹出价格
  17. python学习面向对象_Python小白必学的面向对象
  18. 爬虫python下载网站所有图片_爬取某图片网站多页图片的python爬虫
  19. 怎样做C语言课程设计?(一)
  20. react封装倒计时定时器

热门文章

  1. 快看看看常用手机cpu哪个牌子好
  2. 插上USB设备虚拟机不弹提示框
  3. android初学者错误,iMobile9DforAndroid的入门错误
  4. cocos2dx+Lua 脚本开发一
  5. 图片工厂怎么制作场景拼图 图片工厂制作场景拼图教程
  6. 杰里之AC695N/AC696N 蓝牙耳机PCB LAYOUT【篇5】
  7. spring-boot + mybatis-enhance-actable实现自动创建表
  8. 美国人初学Python之六
  9. 作为口诀来用的“对象健身操”九步
  10. 干货分享-刷票如此简单,一句js代码搞定