
安卓开发
RookieJay
这个作者很懒,什么都没留下…
展开
-
adb 配对+无线连接
再使用命令adb connect ip:port连接即可,注意:此处要使用外面那个ip地址和端口。打开手机开发者选项-无线调试-使用配对码配对设备。提示输入配对码:就按照手机上的输入。原创 2024-01-18 14:14:49 · 3013 阅读 · 0 评论 -
AAPT: error: resource android:attr/lStar not found.
原因第三方依赖使用了最新版本的androidx.core依赖。就个人项目而言,是我的recyclerView使用了latest.release。解决第三方依赖指定版本号,不要使用【+】或【latest.release】来作为版本号。原创 2021-09-26 10:19:16 · 1702 阅读 · 0 评论 -
协程+Retrofit错误
前提:协程搭配Retrofit使用1.Unable to create call adapter for XXX2021-07-29 15:14:24.813 30395-30395/pers.jay.module_login W/System.err: java.lang.IllegalArgumentException: Unable to create call adapter for pers.jay.lib_global.http.WanResponse<pers.jay.lib_g.原创 2021-07-29 15:18:31 · 544 阅读 · 0 评论 -
Moshi与Retrofit配合使用
代码链接点这里原创 2021-06-08 16:57:02 · 1463 阅读 · 0 评论 -
滑动冲突问题
滑动冲突问题以实际案例出发,分析并解决此问题。这里先放张实际开发中遇到问题的描述图,解决了再来补充此文章。原创 2021-01-30 20:08:49 · 204 阅读 · 0 评论 -
Binary XML file line #2: Error inflating class <unknown>
1.背景之前一直用的8.0版本模拟器没啥问题,偶然间切换到了android 6.0 版本的模拟器,发现我的应用崩了。2.错误堆栈01-26 02:26:28.670 3682-3682/pers.hl.library.debug E/AndroidRuntime: FATAL EXCEPTION: main Process: pers.hl.library.debug, PID: 3682 java.lang.RuntimeException: Unable to start原创 2021-01-26 15:43:21 · 1948 阅读 · 1 评论 -
16进制颜色及不透明度参考 转换
一、16进制颜色转换点击访问二、透明度转换100% — FF99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85% — D984% — D683% — D482% — D181% — CF80% — CC79% — C978% — C777% — C476% — C275%原创 2020-11-03 10:41:42 · 1536 阅读 · 0 评论 -
第三方APP调用我的应用,返回到第三方应用
现有我们app作为一个统一支付应用,通过广播被第三方调用,按照原有实现逻辑,直接用当前App的Context来startActivity,Activity又是默认的启动模式,所以打开的页面是和应用其他Activity处于同一个任务栈,返回就直接返回应用首页了。解决办法:经过群里大佬指点(自己也想到过,但总觉得没这么简单,居然没实践),使用singleInstance的启动模式,启动一个新的任务栈。与原来的区分独立开来,这样返回自然就是启动的应用了。这里贴下凯哥最近的启动模式视频讲解:Android原创 2020-10-20 10:58:43 · 1152 阅读 · 1 评论 -
Error:Android Dex: [XXX] com.android.dex.DexException: Multiple dex files define XXX
在IDEA项目中,依赖的jar包版本不一致导致,我这里是主工程和module分别引用了两个不同的lottie的jar包。原创 2020-08-26 17:06:10 · 280 阅读 · 0 评论 -
夜神模拟器 adb
首先将~/AndroidSdk/platform-tools目录下的adb.exe文件复制到其他目录并重命名为nox_adb.exe。然后在夜神模拟器的~\Nox\bin目录,将原先的nox_adb.exe改名为nox_adb_backup.exe。最后将第一步的nox_adb.exe移动到~\Nox\bin目录。来源:http://www.bubuko.com/infodetail-2603316.html...原创 2020-08-10 19:11:46 · 340 阅读 · 0 评论 -
Android 打包没有classes.dex文件
偶然的一次发现 升级版本的时候打包 发现原来6MB多的apk现在打出来只有2点几MB 花了快一周的时间排查 才发现是因为自己引入了一个这样的aspectjx插件(本意是想利用AOP做按钮防抖动)导致的 移除以后就正常了...原创 2020-06-28 18:07:42 · 2061 阅读 · 0 评论 -
ANR产生原因和处理
ANR定义ANR是Application Not Responding的缩写,指应用无响应。这是Android设计的一种机制,希望我们在其规定时间内完成动作,如果没有完成,给用户提示某一过程耗时太长。ANR产生原因接着上面所说,系统希望我们在其规定时间内完成动作,也就是它写入了一些时间配置,超过这个配置的时间就弹出提示框。有以下几种:KeyDispatchTimeout输入事件(键盘输入KeyEvent和MotionEvent触摸事件)5s无响应;BroadcastTimeout广播10s无响应原创 2020-06-05 14:20:00 · 456 阅读 · 0 评论 -
json解析的转换问题
报错:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $我的实体类是从我自己的ssm项目中直接拷贝,所以应该没有问题。处理方法:之前一直没搞懂gson的用法。若返回的是一个对象...原创 2018-05-26 15:39:24 · 411 阅读 · 0 评论 -
复杂的Json格式解析及报错
从阿凡达获取的API示例:{ "error_code": 0, "reason": "Succes", "result": [ { "ctime": "2015-10-21 12:56", "title": "李宝荣任国管局局长、党组书记 焦焕成到龄卸任", "description&原创 2018-05-25 21:09:22 · 2651 阅读 · 0 评论 -
Java版Wanandroid
JWanandroid项目地址JWanandroid介绍Java版Wanandroid客户端,主体使用MVPArms,利用 MVP + RxJava + Retrofit + Glide + EventBus等框架开发。注:目前采用本地全量引入MVPArms并且做了些修改,开发过程中发现并无必要,后续可能移除本地依赖并集成aar。界面截图体验apk:蒲公英下载github下载开放API感谢无私的wanandroid站长鸿洋提供的开放API主要功能文章:首页、问答、公众号原创 2020-05-20 16:54:05 · 486 阅读 · 0 评论 -
Retrofit小细节
一、动态替换BaseUrl在平时开发过程中,可能会遇到使用不同的BaseUrl请求的情况,比如我业务逻辑有一个url,然后请求资源(比如图片)又是另外一个地址。这里我的例子是wanandroid的api和必应的每日一图接口(来自郭霖大佬:http://guolin.tech/api/bing_pic)下面有几种方式不需要创建多个retrofit实例而实现动态切换baseUrl。官方方案:...原创 2020-05-06 11:53:53 · 402 阅读 · 0 评论 -
对Handler的理解学习
一、Handler的作用官方解释Handler允许你发送和处理Message和与线程的MessageQueue关联的Runnable对象。每个Handler实例与一个线程和它的MessageQueue相关联。当你创建一个新的Handler,它就被绑定到这个线程或者这个线程的消息队列上–从那时起,它会传递messages和runnables到那个消息队列,然后当他们离开消息队列时执行他们。个...原创 2020-04-22 18:21:48 · 594 阅读 · 0 评论 -
Parcelable踩坑
问题************* Crash Log Head ****************Device Manufacturer: alpsDevice Model : S21Android Version : 8.0.0Android SDK : 26App VersionName : 1.0.11App VersionCode : ...原创 2020-03-24 15:44:31 · 1084 阅读 · 0 评论 -
Could not GET 'https://xxxxx.pom'. Received status code 400 from server: Bad Request
一个中秋回来,打开Android Studio 就发现报这个错,各种百度,一上午了没有丝毫进展。然后下午翻墙以后,又谷歌许久,stackoverflow都翻遍了,依然没能找到解决办法。引号里面的这个东西点进去是可以正常访问的,返回我一个下载连接。可Android Studio就是不能访问,然后我就想到是不是Android Studio的网络配置问题,这才想起来以前不知道是因为sdk还是什么玩意儿下...原创 2018-09-25 15:01:29 · 2757 阅读 · 1 评论 -
Android ClassNotFoundException/NoClassDefFoundError
在引入Glide4.8.0后,开始使用Glide,结果就报如下这个错:经过很长时间的排查,发现是第三方依赖与我app引入的glide版本不同,我使用的mvpArms 2.5.2依赖4.11.0的Glide库,而我本地项目用的4.8.0,所以就有些类找不到了...原创 2020-03-18 13:10:04 · 425 阅读 · 0 评论 -
关于ButterKnife.Bind(Activity)后控件空指针的问题
好几次在这个地方栽跟头,全因没有加上到这个库的annotationProcessor。包括dagger,eventBus也是一样,没生效首先看build.gradle(app)里面有没有加上annotationProcessor。annotationProcessor的解释...原创 2020-03-01 00:17:37 · 1135 阅读 · 1 评论 -
java变量之static
在做一个popupwindow的时候,设置标题列表,添加item内容,size为2,这里new了两个frament,却发现每次弹窗出来都有4个item,回去找原因,发现自己把这个列表用final static修饰了,这样子会导致这个类的所有对象用的属性都是同一个。刚好复习下:final:final可以修饰属性,方法,类,局部变量(方法中的变量)inal修饰的属性的初始化可以在编译期,...原创 2020-01-06 17:09:31 · 208 阅读 · 0 评论 -
EditText获取不到焦点以及不自动弹出软键盘
按照广大热心网友的指导,做了以下操作:ditText.setFocusable(true);editText.setFocusableInTouchMode(true);editText.requestFocus();activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAY...原创 2019-12-31 11:02:05 · 1768 阅读 · 0 评论 -
Android Artifactory仓库使用
Android Artifactory仓库使用原创 2019-12-26 15:00:22 · 699 阅读 · 0 评论 -
DBFlow修改表结构-增加主键
目的原有表Reform设计是一个主键reformId,由于业务需求需要设置联合主键(reformId, userId)。思路由于sqlite不支持建表后删除列和修改主键这些操作(sqlite并不支持建表后修改主键,或删除列,如果要修改,请参考如下做法),如果要进行这些操作,建议是重新建表。实现写好重建表的sql语句,我这里是将原表重命名建立新表,将数据导入后删除原表。也可以建立临时...原创 2019-11-11 16:29:45 · 1463 阅读 · 0 评论 -
Resource IDs cannot be used in a switch statement in Android library modules.
在组件化开发中,当我们使用switch来进行判断操作时,会报这个错误,原因是R.id.XXX这类资源id在主application中是final,是常量,而在library中,是没有final的。这里盗个图:所以我们需要将switch转变为if else,直接选中switch,alt+enter,选择replace switch with if ....原创 2019-05-29 11:18:36 · 2011 阅读 · 0 评论 -
动态加载so库
今天在集成虹软的人脸demo的时候,发现so库太大也就导致apk体积大。于是用动态加载,理论上是从服务器下载,然后放到指定位置进行加载,这里先在本地进行拷贝。一共两个文件:libarcsoft_face.so和libarcsoft_face_engine.so。1.将so文件放到sd卡根目录的arcFace下String path = Environment.getExternalSto...原创 2019-05-27 17:46:41 · 4417 阅读 · 2 评论 -
Toolbar透明沉浸背景-善用FrameLayout
还是先放图吧:最近做个小东西,写到了音乐播放界面,颜值这方面网易云音乐绝对是佼佼者呀。于是就像弄出一个类似的效果,然后全屏都是歌曲图片高斯模糊的背景,包括toolbar。我的布局主要有两层是这个层级结构:RelativeLayout->Toolbar,ImageView我最初的思路有两个:一是把RelativeLayout的background直接设置模糊后的...原创 2019-05-15 17:43:15 · 1007 阅读 · 0 评论 -
Intent传递对象
一开始传会报错,让我强转成Serializable 或者Parcelable ,强转了会报错不能被序列化或者反序列化。后来查了下,用了最简单的序列化Serializable ,就是让我定义的实体类User实现Serializable 接口就行啦。实体类:传递:接收:完成:...原创 2018-06-22 00:01:30 · 292 阅读 · 0 评论 -
防止重复点击打开两个相同的Activity
之前遇到这个问题总觉得小问题,网上基本都是通过监听前后两次点击事件计算时间差来解决的。原来,这个问题很容易就能解决。Activity的四大启动模式之一:SingleTop。当设置Activity为SingleTop的启动模式后,如果该Activity已经在栈内存在实例且位于栈顶,就直接复用该实例。...原创 2019-06-19 17:40:35 · 1263 阅读 · 0 评论 -
illegal colon after argument expression
我的config.gradle文件里面dependencies 中依赖名字带有特殊符号的没有用括号或者引号装起来,就会报这个错,属于Groovy映射语法错误。解决方法有两个:一是用括号或引号包起来,二是命名不要出现特殊符号如下划线,小数点这些。...原创 2019-07-02 10:40:20 · 722 阅读 · 0 评论 -
主工程无法引用library中的类
项目中有一个叫'libs'的库,当中有个ConverterUtils类,但是我在主工程的MainActivity中引用一直爆红找不到,我这个library已经在settings.gradle中加上了,文件夹样式也变成库的样式了,其实最后就差一步,在主工程app的build.gradle的dependencies中必须使用implementation project(':libs'...原创 2019-06-28 15:24:42 · 779 阅读 · 0 评论 -
清除项目缓存的aar文件
项目用到的人脸识别库我们是作为一个lib放在私有的jcenter仓库的,有一天其中一个文件授权过期,需要替换,于是我替换了打包发布到jcenter上,然后去sync本地依赖到它的项目。可是不管怎么sync都没有更新到,查阅资料得知:要更新maven等仓库的aar,首先要清除as的本地aar缓存,因为,版本号相同,会优先使用本地的缓存。我的路径是在C:\Users\ZJC\.gradle\cach...原创 2019-07-10 15:05:09 · 1920 阅读 · 0 评论 -
Android常用自定义颜色
xml代码 <color name="black">#000000</color> <color name="white">#FFFFFF</color> <color name="red">#D24D57</color> <color name="orange">#EB7347...原创 2019-07-23 14:35:59 · 478 阅读 · 0 评论 -
字符类型(TEXT,VARCHAR等)的纯数字排序错误问题
app有个需求是点击增加按钮查询数据库查询字段最大值每次这个值加一,但是加到10以后每次增加的都是10,跟踪代码发现加到10以后数据库每次查出来最大都是9,猜想是sql的问题,sql语句如下:SELECT * FROM DevcItem t where t.devcId = ? ORDER BY t.tseri DESC LIMIT 0,1导出sqlite数据库,数据库数据如下:...原创 2019-09-11 10:05:15 · 720 阅读 · 0 评论 -
Cause: buildOutput.apkData must not be null
最近项目gradle升级到如下版本com.android.tools.build:gradle:3.4.0https\://services.gradle.org/distributions/gradle-5.1.1-all.zip以后一运行项目就出现了这个问题:Cause: buildOutput.apkData must not be null解决:clean proje...原创 2019-05-07 14:02:07 · 10883 阅读 · 12 评论 -
使用<include>标签-控件空指针
项目里用到toolbar的时候 由于布局关系需要给include 标签加上一个id,然后在activity中使用toolbar的id以后就会报空指针,几经周转,终于找到原因,原来include标签加上id以后,toolbar的id就不能用,只能用include的id。感谢这位大佬:使用include标签出现的空指针问题...原创 2019-05-08 14:23:48 · 299 阅读 · 0 评论 -
改变Toolbar自带返回按钮颜色
感谢:android ToolBar使用默认返回键,修改颜色转载 2019-05-05 10:15:19 · 909 阅读 · 0 评论 -
记一次失败的调试——签名后WebView加载空白
现在是2018年6月28日03:16:59,我先睡觉,起来再写。原创 2018-06-28 03:17:34 · 389 阅读 · 3 评论 -
标题栏和状态栏同色
写了几个子页面,弄了个统一样式的标题栏,Toolbar也用了android:fitsSystemWindows="true",可是还是没有达到我要的效果。在Theme里面我是这样设置的:values/styles.xmlvalues-v19/styles.xml本想着这样能实现沉浸式状态栏,后来发现不行,标题栏颜色不知道从哪来的这个色,是因为NoActionBar嘛?百转千回,终于找到一位大神的方...原创 2018-06-26 17:19:02 · 537 阅读 · 0 评论