
Android 开发
文章平均质量分 75
整理总结自己平时工作、学习过程中遇到的问题
BugFree_张瑞
字节研发、QA、PM等岗位缺人,可帮内推实习/校招/社招,需要的私信我
展开
-
Collections 的 emptyList()、emptyMap() 、emptySet()
Collections.emptyList()Collections.emptyMap()Collections.emptySet()参考链接:https://stackoverflow.com/questions/14846920/collections-emptymap-vs-new-hashmap会生成指定类型的空 List Set Map,而且是不可变的,如进行 add() 操作会报 java.lang.UnsupportedOperationException,返回这样不可变的空集合有原创 2020-12-31 15:46:59 · 3004 阅读 · 1 评论 -
GreenDao 3.0 简介、使用及踩坑
一、GreenDao 简介 GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不再需要编写复杂的 SQL语句, 在性能方面,greenDAO 针对 Android 进行了高度优化,最小的内存开销 、依赖体积小 同时还是支持 数据库加密。 greenDAO 官网地址:greenrobot.org/greendao/ greenDAO GitHub 源码地址:greenrobot/greenDA原创 2020-12-31 14:52:33 · 11624 阅读 · 7 评论 -
【Android】CalledFromWrongThreadException 深入源码分析
先上结论出现此问题的原因是:在非 UI 线程中创建了 Dialog,而在 UI 线程中调用了 show() 方法问题还原在使用 dialog 的时候,因为线程问题,在调用 dismiss() 方法的时候,出现如下常见的 crash–Only the original thread that created a view hierarchy can touch its views.,堆栈信息如...原创 2020-03-28 15:02:55 · 2556 阅读 · 0 评论 -
React Native 启动流程 源码剖析
开始之前 开始分析之前,新建一个名为 RnDemo 的空项目,RN 版本选择 0.58.1,查看项目自动为我们生成 MainActivity.java 和 MainApplication.java 文件,我们的分析就从这两个文件入手。源码结构图 "react-native": "^0.58.1", "react": "^16.6.3",系统框架图源码剖析1、MainApplic...原创 2020-02-20 14:29:41 · 9599 阅读 · 1 评论 -
adb 命令行安装 apk 时,出错:Failure [INSTALL_FAILED_TEST_ONLY]
一、问题还原:在日常工作过程中,经常会遇到测试、产品同学,来找我们安装个测试版的 apk。结果我们打完 deubg 包,却发现通过使用 adb install 命令安装后提示 INSTALL_FAILED_TEST_ONLY。但是使用 Android Studio 开发过程中发现可以直接安装成功二、原因分析:Android Studio 会在 debug apk 的 manifest 文件 ...原创 2019-08-25 16:42:47 · 7704 阅读 · 1 评论 -
小米手机安装 charles 证书 windows10
初衷:抓包的时候如果碰到 https 链接的地址,你会发现都是看不了内容的,都显示前提:windows charles 配置正确,手机 代理 配置正确失败路径:按照 Charles 的提示,手机打开 chls.pro/ssl小米通过自带浏览器下载得到一个 getssl.crt 证书设置 > 更多设置(系统和设备) > 系统安全 > 从存储设备(SD卡)安装选择...原创 2019-08-23 18:14:54 · 3934 阅读 · 0 评论 -
charles 抓包,数据格式乱码问题解决
环境:windows 10、android studio3.3、小米手机、charles 4.1.4问题描述:很多朋友都会遇到charles 抓包数据显示乱码的问题,网上也有各种解决办法。其中最多的就是配置 如下然而,并不会解决我的问题。相信很多人也是配置完之后还是乱码。解决:说一下我的解决办法,不一定对所有人有效:(问题的根本,在于 protobuf 格式与 json 格式,大家...原创 2019-08-24 17:32:27 · 19397 阅读 · 2 评论 -
发布开源项目到 Bintray、Jcenter 遇到的坑
发布开源项目到 Bintray、Jcenter 遇到的坑至于正常的发布流程,网上都有。配置依赖:project 的 build.gradledependencies { // 添加上传到jcenter所需的插件 classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'co...原创 2019-07-17 11:04:18 · 2175 阅读 · 2 评论 -
Kotlin as 类型转换运算符
起源:封装 DialogFragment 时自定义的 ViewHolderfun <T : View> getView(@IdRes viewId: Int): T { var view = mViews?.get(viewId) if (view == null) { view = mConvertView?.findViewById(viewId)...原创 2019-07-09 11:01:24 · 15916 阅读 · 1 评论 -
SimpleDateFormat Y 与 y 区别 及 崩溃 Unknown pattern character ‘Y‘
Bugly Crashjava.lang.IllegalArgumentException:Unknown pattern character ‘Y’影响范围:target 24 以下低版本手机,在设置年月格式时,使用下述代码,必然崩溃。影响较大!!!值得反思// 错误写法SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");...原创 2019-03-28 20:51:47 · 2419 阅读 · 0 评论 -
Android 常见崩溃问题分析及一般的解决方案
一、java.lang.IllegalArgumentException解决方案:参数不匹配异常,通常由于传递了不正确的参数导致。常见于:Activity、Service 状态异常;非法 URL;UI 线程操作;Fragment 中嵌套了子 Fragment,Fragment 被销毁,而内部 Fragment 未被销毁,所以导致再次加载时重复,在 onDestroyView() ...原创 2019-03-08 14:50:19 · 2656 阅读 · 1 评论 -
android 虚拟键盘遮挡布局 顶起布局
在 android 的 XML 中设置 fitsSystemWindows 属性的分析:fitsSystemWindows 只作用在 sdk>=19 的系统上就是高于 4.4 的系统android:fitsSystemWindows="true"这个属性可以给任何 view 设置,只要设置了这个属性此 view 的所有 padding 属性失效,而且只有在设置了透明状态栏 (Stat...原创 2019-02-23 10:51:06 · 2586 阅读 · 1 评论 -
Android Studio 提示 R 找不到或者飘红解决方案
我们经常会遇到在项目开发时,突然 诸如 R.id.login 之类的资源引用标红报错,而我们即使手动导入,依然解决不了的问题。问题描述:现记录一下,我的问题及解决方法。首先, 排除因自己手误导致的资源 id 引用错误;其次, 常见的 先 clean,后 rebuild 并不生效,因为 执行任何一项操作都会报如下的错误:java.util.concurrent.ExecutionExcep...原创 2019-02-19 18:14:02 · 6011 阅读 · 1 评论 -
android 7.0 手机调用手机相机、相册常见的两个崩溃:FileUriExposedException、SecurityException
今天在写项目的时候,遇到两个与手机相机、相册相关的崩溃crash,现总结如下,以后少跳坑。 android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyond app through Intent.getData() java.lang.SecurityException: Perm...原创 2019-01-31 19:09:59 · 2197 阅读 · 2 评论 -
Android Fragment 监听物理返回 back 键
在很多场景下,我们需要 Fragment 监听物理 back 键,而不是 Activity,这个时候我们只能做一些处理,来让 Fragment 拦截。首先在 Fragment 中自定义回调方法,如下:public boolean onBackPressed() { EventBus.getDefault().post(new ClosexxxxxEvent()); // 做我们想做的处...原创 2019-01-10 15:44:54 · 5747 阅读 · 1 评论 -
USB无法debug调试:because an app is obscuring a permission request settings cab't verify your resonse
Android 调试遇到了一个奇葩的问题,usb调试授权时提示“Because an app is obscuring a permission request settings can’t verify your resonse”,中文翻译(因为某个应用程序模糊了权限请求设置,所以不能验证你的请求)解决方法一:看看自己的手机是不是有在运行的后台程序(以悬浮窗的形式存在的,比如 Zalo,这就...原创 2019-01-04 10:17:13 · 2021 阅读 · 0 评论 -
崩溃修改:ConcurrentModificationException 实战
实战:通过腾讯的 bugly 反馈的问题解决 Kwai-pro 的bug,因为如果每次都是通过 .getMessage() 方法获取,有可能有别的线程在操作该数据集,导致 ConcurrentModificationException 的出现解决方案:该异常表示迭代器迭代过程中,迭代的对象发生了改变,如数据项增加或删除。[解决方案]:由于迭代对象不是线程安全,在迭代的过程中,会检...原创 2018-12-13 10:22:34 · 841 阅读 · 0 评论 -
Eclipse下SVN插件安装、使用及SVN服务器的搭建
SVN简介: SVN是版本管理工具,进行团队项目开发时,项目代码保存在服务器上,成员可以用SVN在本地获得并更新代码。安装首先在Window→show view→other上输入搜索“SVN”,查看eclipse是否已经下载安装好,是否已存在SVN工具。若不存在,点击导航栏Help→Install new software,弹出对话框中点击“add”,输入下图中的网址进行下载。选择Subcli原创 2017-10-27 20:46:03 · 3543 阅读 · 0 评论 -
Android studio 3.x版 不显示自己打印的log日志问题解决
com.intellij.openapi.diagnostic.Logger$EmptyThrowable 。。。。 com.intellij.openapi.diagnostic.Logger.error(Logger.java:115) 。。。。今天在开发的时候,打log测试,结果自己写的log在控制台没有输出,以为自己写的有问题,查找了半天,仍没发现原因。网上搜,也没找到合适的解决...原创 2018-07-04 18:47:59 · 3229 阅读 · 0 评论 -
Android中SharedPreferences.Editor的apply()与commit()方法
写在前面 今天在写 LifeTips App 时,涉及到存储用户调节的屏幕亮度时,使用了 SharedPreferences,及 SharedPreferences.Editor,结果 Android Studio 出现了”黄色的感叹号“(本人有强迫症,不喜欢任何 warning。。),提示:Consider using apply() instead of commit on SharedP...原创 2018-11-11 20:40:12 · 6881 阅读 · 1 评论 -
仿抖音视频详情页点赞红心动效
GitHub地址:https://github.com/selfconzrr/LikeAnimator可直接测试运行核心思路:自定义 View 继承自 RelativeLayout ,重写 onTouchEvent,在点击时触发将心形的图片 add 到整个 view 中,然后在执行动画。主要的处理逻辑都在 onTouchEvent() 事件中。首先,我们需要在触摸事件中做监听,当有触摸时...原创 2018-12-11 16:24:58 · 5631 阅读 · 0 评论 -
Error: Program type already present: android.support.v4.app.FragmentTransitionCompat21$1
参考链接https://stackoverflow.com/questions/52845161/error-program-type-already-present-android-support-v4-app-fragmenttransitionco主要原因:gradle 文件没有导入 support v4 包implementation 'com.android.support:ap...原创 2018-12-12 10:44:09 · 7231 阅读 · 3 评论 -
RecyclerView:getLayoutPosition 和 getAdapterPosition
一、getPosition/** * @deprecated This method is deprecated because its meaning is ambiguous due to the async * handling of adapter updates. Please use {@link #getLayoutPosition()} or * {@link #getAd...原创 2018-12-12 14:30:55 · 3272 阅读 · 1 评论 -
Android Splash闪屏
WhyGetting users to the content they care about should be your #1 priorityAndroid APP 启动,替代白屏、黑屏、闪屏当我们的 APP 已经启动但尚未在内存中时,用户点击 app 图标启动应用程序与实际调用启动程序 Activity 的 onCreate()之间可能会有一些延迟。在“冷启动”期间,WindowMa...原创 2018-12-12 14:40:28 · 921 阅读 · 0 评论 -
【Android TextView/EditText 不允许换行】android:lines 与 android:maxLines 与 android:singleLine
在开发需求过程中,遇到 要求用户的昵称输入框 单行 输入展示,且有最大字符数限制,于是 就想当然的使用 android:singleLines 属性,结果被 lint 警告了;然后换成 android:lines 与 android:maxLines 属性,结果不生效,当文本长度超过 view 的宽度时,依旧自动换行,而且用户点击虚拟键盘上的 Enter 键也可以换行。最后通过给 EditText...原创 2019-09-30 10:58:45 · 8445 阅读 · 1 评论 -
【Android】动态设置 View 的背景颜色 BackgroundColor 无效的问题
问题描述我们都知道 setBackgroundColor() 方法用于动态设置 view 的背景颜色。今天在做需求的时候,需要根据情况动态更新自定义 view 的背景颜色,于是就想当然的这么写:mItemView.setBackgroundColor(R.color.message_red)结果呈现出来的 UI 效果并不是我们想要的。纳闷了好久。。。。然而,如果自己定义一个 color....原创 2019-09-21 11:06:37 · 7443 阅读 · 2 评论 -
源码分析:XML 布局里 设置 View 的点击事件
在 APP 开发过程中,给一个 View 设置监听点击事件是常见的需求。一般两种实现方式:1、设置 listenerview.setOnClickListener(onClickListener);2、在 XML 文件中设置对应的 view 点击时候的回调方法,当然需要在 Activity 中编写用于回调的方法// Activitypublic void onClickView(){...原创 2019-08-28 09:16:17 · 675 阅读 · 1 评论 -
Dialog 究竟会不会触发 onPause() 生命周期函数?
谣言:Dialog 会触发 onPause() 算是 Android 开发领域流传最广的谣言之一了。Demo 验证:1、普通的 Dialog在这里插入代码片2、系统级别的 Dialog在这里插入代码片原理分析:先来看 sdk doc 中对 onPause() 的说明:onPause:Called when the system is about to start resu...原创 2019-08-26 20:32:45 · 4225 阅读 · 0 评论