Android 开发所遇问题

1. 环境问题

2018-7-25

问题:AVD启动不了 —— 报x86需要加速程序错误 —— 在SDK管理器中重新安装这个组件出错 —— 报Hyper-V Hyper-Vx冲突

解决:win10 —— 控制面板 》程序与功能 》启用或关闭Windows功能 —— 取消选择Hyper-V


2. AndroidStudio问题

2021-02-16

问题:对 drawable layout 进行大量替换和修改,编译出错:AAPT: error drawable not found

解决:没有解决了,无论怎么刷新、重启、修改、删除新增都不行,只能重新建一个项目,复制文件。

更新:是界面新版本,drawable xml 不能设置 tint

2020-9-28

问题:应用崩溃后重启,看不到日志

解决:在Logcat选择崩溃的包名查看日志,xxx.xxx.xxx 【DEAD】

2018-9-24

问题:Kotlin not configed

解决:项目七转八转,一顿瞎操作,最后把kotlin的版本都弄错了,在项目build.gradle中把kotlin版本改回与gradle相对应版本(会有提示)。

2018-9-24

问题:Android Studio 抽风, 不停报错:Stub index points to a file without PSI: com.intellij.openapi.fileTypes ... ... 

解决:File》Invalidate Cashes / Restart

2018-7-31

问题:真机测试时,安装应用失败,卸载了之前版本也没有

解决:Android studio —— File》Settings》Build》Instant Run —— 取消选择Enable Instant Run ...

后续(2018.9.21):发现 Instant Run 还是挺有用的,打开此功能,将 app》build》intermediates 文件夹删掉再编译运行,可以用了

3. 代码问题

2021-11-04

问题:Android 6.0 之前使用代码设置LinearLayout子View 的 margin,有时候会无效

原因:不同版本LinearLayout.generateLayoutParams方法不一样,新版本会处理参数是MarginLayoutParams时候的情况。旧版下,会因为此方法没有处理,导致LinearLayout.addView方法,会因参数是MarginLayoutParams而不是LinearLayout.LayoutParams时,丢掉margin信息。

解决:addView时确保使用的是LinearLayout.LayoutParams。同理,RelativeLayout也一样。

2021-05-14

问题:RecyclerView setAdapter 与 adapter.notifyDatasetChanged 几乎同时执行时,显示异常

解决:只执行一个

2021-04-04

问题:给LinearLayout 或者 RecyclerView设置.9图之后,子View的位置发生变化。

原因:可能是个BUG,改变View背景可能会改变view的padding

解决:设置背景后,重新设置padding

2020-12-16

问题:RecyclerView的报错 Inconsistency detected. Invalid view holder adapter positionViewHolder

原因:数据list内容改变后,没有及时通知列表内容变化。要保证先改变list,后通知,并且在同一线程顺序执行。

2020-12-14

问题:AlarmManager无法传递PendingIntent中的Parcelable类型Extra。设置了Parcelable的extra之后,不仅这个数据丢失,连同一起设置的其他extra一起丢失。

原因:网络上的解释是系统如果需要修改Intent时,需要重建intent的extra,而系统没有自定义的类,这个步骤会崩溃,闹钟触发时只会得到空数据。

解决:Anroid N之前还可能用。之后只能设置基本类型数据,或者将Parcelable转为基本类型传递。

2020-5-4

问题: View先从父View中移除再添加,依然报已有父View的错误

原因:View在从父View中移除时,有Translation动画,还没有真正从父View中移除。看源码好像是低版本的BUG,当前出现问题的系统 Android 7.0

2020-4-5

问题:GridLayout 动态添加控件不显示,Android 6.0以上系统测试正常,向下兼容时出现。

原因:引用的是 android.widget.GridLayout

解决:添加依赖:implementation"androidx.gridlayout:gridlayout:1.0.0",并引用 androidx.gridlayout.widget.GridLayout。看来android.widget.GridLayout已经被抛弃了。但竟然可以在高版本使用,F**K。

2019-4-3

问题:ViewGroup启用LayoutTransition时,动态添加这个ViewGroup自己却有动画

原因:本以为 LayoutTransition只作用于ViewGroup的子View,但是LayoutTransition类源码runChangeTransition函数显示:如果 mAnimateParentHierarchy 为true,启用ViewGroup的父ViewGroup的动画,作用于当前ViewGroup。

解决:transition.setAnimateParentHierarchy(false)

2019-2-13

问题:RecyclerView 滚动之后 item 点击事件失效,表现为点击两次或过一会儿点击生效

原因:RecyclerView 嵌套在CoordinatorLayout中产生此问题,RecyclerView 滚动表面上结束了,内容还处于Fling状态,不能响应点击。RecyclerView 28.0.0 版本在修复旧版本问题的时候引入此新 BUG。

解决:禁止直接嵌套。

2018-9-18

问题:自定义TextView初始化时 SingleLine 属性与 Gravity.Center 混用,导致不绘制

解决:这是TextView的一个Bug,没办法,估计Google也不会注意到这个问题上来。

2018-8-10

问题:自定义属性 obtainStyledAttributes 死活找不到 R.styleable.xxx 但是能找到 R.styleable.xxx_xxx

解决:错误提示垃圾了,其实是 attrs.xml 出现了问题。我的问题:

1、有重复 attr 属性名称,将重复的属性名称移动到 declare-styleable 外面,引用时只包含名称。

2、attr 名称有一个是 “new” 系统不接受,也不提示错误 f*******k 

2018-8-2

问题: ViewPager使用,PagerAdapter.notifyDataSetChanged()不更新数据。

过程:网上回答比较多的是 getItemPosition return POSITION_NONE,还有其他使用 FragmentPagerAdapter,FragmentStatePagerAdapter的,复写了其他方法的,统统尝试了在我的工况下没有效果。

结果:stackoverflow 上这个问题持续问了六年,不断有人回答,讨论,结果仍然不够明朗。

解决:其实只需要给 ViewPager 重新设置一次更新数据了的 PagerAdapter 即可。这并没有损失多少性能,重新设置 adpater 与 return POSITION_NONE 是一个原理,重新生成了2~3个View而已。

2018-7-31

问题:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.transformMatrixToGlobal(android.graphics.Matrix)' on a null object reference

工况:Activity A 中的 RecyclerView 中的 item 与 Activity B 中的一个View共享,使用共享元素动画在二者间跳转, 为了动画更柔和没有闪烁,从 B 返回 A 时先通过 BroadcastReceiver 把数据返回来, 更新了 A 中 item,使用了 RecyclerView 的 notifyItemChanged(position:Int),共享元素动画结束时报错。

原因:经测试,不同系统版本,不同 RecyclerView 版本(27.1.1 与 26.1.0)表现不一样,以上问题发生在使用 notifyItemChanged(position:int) 会重新调用 onCreateViewHolder 即使 Item 还在可视区,这个调用导致共享元素发生变化,不再是同一个View,从而使 B 返回 A 时的动画找不到原来的 View 报错。

解决:改调用 notifyItemChaned(position: Int, payload: Object),payload 传 0 即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容