- 博客(46)
- 资源 (7)
- 收藏
- 关注
原创 Android框架mqtt库无法兼容高版本android13的问题
但是该库创建的mqttservice销毁再重建时会有数据库异常导致的闪退问题,需要注意,最后总算是解决了,网上关于mqtt适配高版本的文章太少了,希望能给遇到同样问题的朋友一点帮助。,替换完成后将旧的引用包删除并重新导入进行编译,结果又报了另外一个库找不到,于是我又根据日志添加了对应的依赖库。最近使用mqtt库,测试的时候发现在Android12及以下正常,但在13上闪退,闪退日志如下。,具体替换方式参考该链接吧,替换库的。重新编译后终于可以了!
2023-09-22 17:59:46
1362
原创 CMake ‘3.10.2‘ was not found in PATH or by cmake.dir property.
CMake '3.10.2' was not found in PATH or by cmake.dir property.
2022-11-17 16:35:35
6295
原创 only id(String) method calls allowed in plugins {} script block
only id(String) method calls allowed in plugins {} script block
2022-11-14 15:07:30
2087
原创 String、StringBuilder、StringBuffer的区别与联系
1、首先介绍下三者的区别:String为字符串常量,一旦被创建就不能再进行更改StringBuilder和StringBuffer为字符串变量,创建后是可以被更改的2、三者的执行速度:StringBuilder>StringBuffer>StringString str = "abc"; String str1 = str+"cd";通过反编译工具可以看到String str = "abc";String str1 = (new StringBuilder("s
2020-12-18 11:26:17
270
原创 java校验身份证的合法性
判断身份证合法性的规则1、首先先科普一下身份证号码的数字代表什么? 根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2019-11-22 18:22:50
6094
2
原创 MAC环境下使用AS生成so包总结 --- JNI基础篇
在Android开发中,我们经常会用到.so文件。原因有很多,比如部分方法不想暴露,如加密规则。比如部分秘钥需要存储,哪怕最简单的一个加盐的String。我们使用.so调用获取这个String,也比直接明文写在代码中要来的安全。所以就需要我们安卓开发的同学,要知道简单的.so怎么编写。今天为大家带来一篇,如何通过Native方法,从.so中获取一个字符串(可以存储秘钥哦)。1、Native开发,...
2019-11-22 18:15:02
1180
原创 android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c
今天打开一个老项目,运行起来直接崩溃,看了日志WHAT FUCK(黑人脸???),一脸懵逼,正常这种异常应该是setText()设置了int值会出现,但是检查了一圈代码没什么问题,上网搜有的说是找到R文件查看#0xfffffe6c对应的是哪个文件缩小排查范围,结果找了半天也没找到(~吐血)。最后终于找到一篇靠谱的,原来是项目中使用BaseMultiItemQuickAdapter报的错,原因是实现...
2019-11-21 22:56:16
2271
1
原创 Android通过第三方软件打开Word、Excel、PPT、PDF等文档
近期公司有个需求,PDF格式需要在应用内打开浏览,Word、Excel要求不高直接用第三方软件打开即可,找了两种解决办法。第一, 全部在应用内打开,可接入腾讯的TBS(没有做尝试),可参考链接接入TBS文章第二,PDF可使用AndroidPdfViewer在应用内下载打开即可,Word、Excel下载后直接跳转至第三方软件打开我选择了第二种办法,以后有空再尝试第一种解决办法吧。以上...
2019-05-31 14:31:05
8623
原创 EditText默认隐藏软键盘
推荐两种吧一、让父控件获取焦点android:focusable="true"android:focusableInTouchMode="true"二、设置Activity属性android:windowSoftInputMode="adjustUnspecified|stateHidden"android:configChanges="orientation|keyboa...
2019-05-30 19:48:17
997
原创 Java中的wait与sleep区别以及生产者与消费者案例
wait主要用于切换线程,sleep主要用来阻塞当前线程Java多线程一篇不错的文章推荐下Java多线程(1)、常用的wait方法有wait()和wait(long timeout);void wait() 在其他线程调用此对象的 notify() 方法或者 notifyAll()方法前,导致当前线程等待。void wait(long timeout)在其他线程调用此对象的noti...
2019-03-21 15:06:42
617
原创 Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题
场景最近做一个保存应用的图片并插入到系统图库同时通知相册刷新的功能,做完后发现在部分华为和三星的手机上出现虽然图片保存成功了,但是相册却找不到图片的问题,很困惑,查找文件夹图片也已经存在,可就是在相册里刷新不出来。最后百般尝试找到了解决办法:保存的方法添加写入的动态权限创建文件路径可选择Environment.getExternalStorageDirectory(),也就是(/stora...
2019-02-28 22:40:09
13365
8
原创 Android 集成友盟在无微博客户端分享时出现白屏页面的坑
场景友盟官方文档:友盟分享官网链接好久没做微博分享了,最近集成友盟并实现微博分享时出现了个问题:当有微博客户端时,微博分享正常使用,当手机没有安装微博客户端时,却出现了一个只有“微博分享”和关闭按钮的白屏情况,如下图:按常理都知道肯定是回调微博的web页面,于是去AndroidManifest.xml中查看是否忘记了写,对照了下官方文档也没错,代码如下:<activity ...
2019-02-28 22:13:46
1036
原创 透明度计算参照表
100% — FF99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85% — D984% — D683% — D482% — D181% — CF80% — CC79% — C97...
2019-01-10 10:56:03
561
原创 RecycleView嵌套RecycleView规避子RecycleView拦截item的点击事件
以往防止子view事件拦截,习惯性使用clickable、focusable等属性,但是对于双层嵌套却怎么也不起作用。最终在适配器中使用以下方法解决了问题:
2019-01-07 22:51:36
3158
原创 Android Studio3.2版本与databinding不兼容解决办法
最近在官网下载了as的最新版本3.2,本来想试试新特性,没想到反倒踩了几个坑,编译速度变慢了、和databinding不兼容,每次修改xml文件后都需要重新rebuild后才能找到控件id,WF……什么鬼?省去一万字的吐槽,上网也没搜到有什么解决办法,后来发现同事的新版本没问题,找找原因他使用的是3.2.1版本,这个版本只能通过as检测更新升级(官网现在最高版本还是3.2),抱着试试的态度升级了下...
2018-12-20 09:22:05
3612
原创 Activity相互跳转出现重复调用OnCreate()的异常情况
真的是浪费时间啊,此处埋坑以防再犯今天在做分享功能的时候,发现跳转到分享页面再返回到之前页面时,整个页面会重新加载,出现一系列问题就不说了,而且友盟分享的回调提示也没有弹出来,很奇怪,打了个Log,不出意外页面重新走了OnCreate()方法,可是不应该啊,我并没有销毁页面跳转,不应该直接走OnResume()吗?真是百思不得其解,怎么会出现这种情况???想了半天才发现前段时间做测试把系统设置...
2018-11-08 22:34:06
2063
1
原创 Android与JS交互篇--JSBridge的使用
在android日常开发中,大家或多或少都会碰到原生嵌套web页面,大家可以使用传统的方式实现Native与JS的交互,这里就不多介绍了,现在我们简单介绍下网上目前比较流行的已经封装好的框架JsBridge。可参考官网github地址:点击打开链接先看下接下来将要实现的效果图:一、JsBridge的基本概念Android4.4以前,谷歌的webview存在安全漏洞,网站可以通过js注入就可以随便拿...
2018-03-07 22:45:29
10624
2
原创 Android Studio3.0 报Error:Execution failed for task ':jsbridge:javaPreCompileDebug'. > 错误
同个项目换了个机器报了以下错误:Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to...
2018-03-07 21:23:28
550
原创 ButterKnife运行时Caused by: java.lang.IllegalStateException异常
造成这个问题的原因是在SetContentView之前就写了ButterKnife(this) 正确写法应该 是在setContentView之后才写
2018-01-03 17:51:04
3729
原创 Error:(36, 0) Gradle DSL method not found: 'implementation()' Possible cause
最近在引用库文件时使用了implementation这个参数,接下来就遇到编译错误,原来使用这个参数需要Android 3.0.0,gradle版本必须在3.4以上 To use the DSL implementation() you have to use:The updated gradle plugin for Android 3.0.0The gradle version 3.4
2018-01-03 17:47:44
13426
3
原创 error: .repo/manifests/: prior sync failed; rebase still in progress
问题最近在使用repo拉项目时,碰到了这个问题,只知道是操作失误导致的,但就是想不起来具体是哪步所致。网上找了很多基本都是同一个帖子原因是git本地有改动导致的,而我的文件夹是新建的,不存在git操作,所以和我的问题不匹配,最后折腾了好久才解决!原因及解决办法其实原因很简单,找到你的工作空间根目录或者新建文件夹的根目录,执行ls -al,查看列表里是否出现.repo的文件,有的话再执行rm -rf
2017-12-27 09:58:02
4589
原创 Gradle实现多渠道打包(不同资源文件打不同的包)
在日常开发中,我们或多或少都会碰到多渠道打包的一些问题,有些是同一个版本要上传到不同的平台,有些是要提供给不同的代理商,中间可能需要改动里面的图片或其他的一些资源文件,对于版本比较少的我们可以简单的替换,但是遇到很多版本时,相信再通过手动替换会令人吐血~ 废话不说,先来看下效果图,下面是根据不同平台需要打包出来的两个apk apk界面展示效果如下(为了方便展示我在productFlavors
2017-11-28 23:11:16
8320
1
原创 ORMLite快速入门操作
大家在做安卓项目时肯定都会碰到数据库存储,原生的效率上会比较低,为了提高开发效率,大多公司会用一些框架,目前市面上比较流行的框架有ormlite、greenDao、SQLBrite、Realm等,其中ormlite是JDBC(Java数据库连接)和Android的轻量级ORM java包,而GreenDao则是一种轻快地将对象映射到SQLite数据库的ORM解决方案。 下面让我们快速的学习一下or
2017-11-22 16:32:16
10693
2
原创 java校验手机号码、固定电话的合法性
一、规则说明1、全国固定电话区号大体分两种,三位数和四位数(400固话除外) 中国电话区号三位数有十大城市。分别为: 北京市010 广州市020 上海市021 天津市022 重庆市023 沈阳市024 南京市025 武汉市027 成都市028 西安市029
2017-11-08 16:52:31
10363
2
原创 解决新建ionic项目时安卓的tab栏在顶部问题
一、前言在创建ionic项目时,tab导航栏在IOS里是放在底部,但在安卓项目里却被置顶了,那么如何解决呢?其实很简单,只需要添加以下代码~二、解决办法我们可以找到www文件夹–>js文件夹–>app.js文件 在config方法里添加如下代码.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
2017-10-31 09:57:32
575
原创 JAVA中jar包反编译再重新生成jar文件完整流程
准备工作工具:jd-gui反编译工具 下载地址:https://github.com/java-decompiler/jd-gui/releases 这里我用的是MAC,所以直接下载最新版本jd-gui-osx-1.4.0.tar作为演示,window系统可以下载jd-gui-windows-1.4.0.zip
2017-10-17 15:35:57
20084
原创 JAVA中Properties的使用
Properties类Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。
2017-09-22 18:17:00
475
原创 java实用小技巧——巧用最大值
1、前言日常开发中,我们会碰到各种各样的问题,如果每个问题都能找到合适有效的方法解决,一定会做到事半功倍的效果!
2017-09-22 14:15:51
772
原创 ormLite抛Can't find a no-arg constructor for class异常
今天在使用ormLite创建表的时候,想通过有参构造函数携带一个字段进去,没想到运行起来直接崩溃,并报了下面这个异常Caused by: java.lang.IllegalArgumentException: Can't find a no-arg constructor for class com.xxx.xxx.xxx.xxx
2017-09-21 14:27:21
1083
原创 Handler由浅入深(二)--Handler的实现原理以及Looper、Handler、Message三者之间的关系
1、前言上一篇介绍了Handler的几种基本使用方法,本篇将介绍一下Handler的实现原理,这也是面试经常会被问到的问题,其实我们只要搞清楚Looper、Handler、Message三者之间的关系,自然就明白了Handler的实现原理。
2017-09-17 10:27:31
363
原创 Handler由浅入深(一)--Handler的基本使用
为什么要使用Handler1、UI更新是在主线程(即UI线程,非线程安全) 2、主线程不能执行耗时操作,耗时超过5秒会出现ANR现象 3、子线程无法更新主线程UI 由此产生了Handler消息传递异步机制,子线程负责耗时操作,主线程负责更新UI,Handler充当子线程和主线程之间的桥梁作用;Handler的一些特点1、Handler可分发Message对象和Runnable对象到主线程
2017-09-14 23:08:06
515
1
原创 java中使用逗号将集合拼接成字符串
今天介绍一个拼接字符串的小技巧,比较简单适用! 日常开发中常常会碰到需要用逗号将集合中的String数据或者对象中的某个String成员拼接成一个完整的字符串(末尾没有逗号,中间用逗号隔开),有的人可能喜欢先拼接最后再用subString截取内容(如:1,2,3,4,5,)截取最后一个逗号前面的所有内容
2017-08-21 22:42:01
22409
5
原创 Android中使用ScrollView内嵌ListView出现显示不完全问题
该问题是一个经常会碰到的问题,之前是只用在一个布局文件中,所以写死固定高度凑合也能用,但是当使用ScrollView内嵌ListView写成一个自定义控件无法判断高度时这种方法就不适用了。下面介绍一个很简单的方法一次性替换,永久无忧~
2017-08-17 22:48:29
551
原创 java中static关键字的用法总结
前言static对我们来说并不陌生,也是面试经常碰到的问题,今天抽空整理了一篇总结作为笔记保存起来! static用法可以分为三大块:静态变量、静态方法、静态代码块,下面将从这三个方面分析静态方法通常在一个类中定义一个方法为static,即为静态方法,无需本类的对象即可调用此方法
2017-08-01 22:31:50
404
原创 Android的gradle中compile和provided的区别
gradle中compile、provided、compile files和compile project的区别
2017-08-01 11:10:07
12528
原创 Android使用WheelView出现只显示一位数字的问题
问题最近使用WheelView做日期滚动轮,做完之后发现有个bug,即当一个WheelView上下可见字段都为一位数时保存退出(如:“时”下面显示为0、1、2),再次进入查看时,该条WheelView都变成了一位数(只显示首位数字,如:11、12、13只显示1),查看了代码也没发现什么问题,问了同事有没有遇到过相同问题,这才知道原因!
2017-07-27 15:14:07
1817
原创 Android各控件实现背景选中效果总结
前言selector实现背景选中替换效果,很容易的一个东西,但每次用到都很容易把各控件的使用方法记混,索性写一篇总结方便下次查找。本篇总结的控件包括CheckBox、ImageButton、RadioButton、Button、ImageView。推荐使用CheckBox
2017-07-25 17:56:20
2722
Git最新版本下载(内含MAC、window两个版本)
2017-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人