自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LIUW的博客

Be strict with oneself. Only persist, only then has the distant place.

  • 博客(46)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android框架mqtt库无法兼容高版本android13的问题

但是该库创建的mqttservice销毁再重建时会有数据库异常导致的闪退问题,需要注意,最后总算是解决了,网上关于mqtt适配高版本的文章太少了,希望能给遇到同样问题的朋友一点帮助。,替换完成后将旧的引用包删除并重新导入进行编译,结果又报了另外一个库找不到,于是我又根据日志添加了对应的依赖库。最近使用mqtt库,测试的时候发现在Android12及以下正常,但在13上闪退,闪退日志如下。,具体替换方式参考该链接吧,替换库的。重新编译后终于可以了!

2023-09-22 17:59:46 988

原创 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 5389

原创 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 1771

原创 MapView使用Dialog主题时前景色会变暗的解决办法

安卓开发高德地图在Dialog中显示时会变暗的解决办法

2022-01-12 09:49:30 1823

原创 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 230

原创 java校验身份证的合法性

判断身份证合法性的规则1、首先先科普一下身份证号码的数字代表什么? 根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

2019-11-22 18:22:50 5890 2

原创 MAC环境下使用AS生成so包总结 --- JNI基础篇

在Android开发中,我们经常会用到.so文件。原因有很多,比如部分方法不想暴露,如加密规则。比如部分秘钥需要存储,哪怕最简单的一个加盐的String。我们使用.so调用获取这个String,也比直接明文写在代码中要来的安全。所以就需要我们安卓开发的同学,要知道简单的.so怎么编写。今天为大家带来一篇,如何通过Native方法,从.so中获取一个字符串(可以存储秘钥哦)。1、Native开发,...

2019-11-22 18:15:02 1077

原创 android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c

今天打开一个老项目,运行起来直接崩溃,看了日志WHAT FUCK(黑人脸???),一脸懵逼,正常这种异常应该是setText()设置了int值会出现,但是检查了一圈代码没什么问题,上网搜有的说是找到R文件查看#0xfffffe6c对应的是哪个文件缩小排查范围,结果找了半天也没找到(~吐血)。最后终于找到一篇靠谱的,原来是项目中使用BaseMultiItemQuickAdapter报的错,原因是实现...

2019-11-21 22:56:16 2224 1

原创 Android通过第三方软件打开Word、Excel、PPT、PDF等文档

近期公司有个需求,PDF格式需要在应用内打开浏览,Word、Excel要求不高直接用第三方软件打开即可,找了两种解决办法。第一, 全部在应用内打开,可接入腾讯的TBS(没有做尝试),可参考链接接入TBS文章第二,PDF可使用AndroidPdfViewer在应用内下载打开即可,Word、Excel下载后直接跳转至第三方软件打开我选择了第二种办法,以后有空再尝试第一种解决办法吧。以上...

2019-05-31 14:31:05 8269

原创 EditText默认隐藏软键盘

推荐两种吧一、让父控件获取焦点android:focusable="true"android:focusableInTouchMode="true"二、设置Activity属性android:windowSoftInputMode="adjustUnspecified|stateHidden"android:configChanges="orientation|keyboa...

2019-05-30 19:48:17 976

原创 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 595

原创 Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题

场景最近做一个保存应用的图片并插入到系统图库同时通知相册刷新的功能,做完后发现在部分华为和三星的手机上出现虽然图片保存成功了,但是相册却找不到图片的问题,很困惑,查找文件夹图片也已经存在,可就是在相册里刷新不出来。最后百般尝试找到了解决办法:保存的方法添加写入的动态权限创建文件路径可选择Environment.getExternalStorageDirectory(),也就是(/stora...

2019-02-28 22:40:09 13168 8

原创 Android 集成友盟在无微博客户端分享时出现白屏页面的坑

场景友盟官方文档:友盟分享官网链接好久没做微博分享了,最近集成友盟并实现微博分享时出现了个问题:当有微博客户端时,微博分享正常使用,当手机没有安装微博客户端时,却出现了一个只有“微博分享”和关闭按钮的白屏情况,如下图:按常理都知道肯定是回调微博的web页面,于是去AndroidManifest.xml中查看是否忘记了写,对照了下官方文档也没错,代码如下:<activity ...

2019-02-28 22:13:46 1003

原创 透明度计算参照表

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 544

原创 RecycleView嵌套RecycleView规避子RecycleView拦截item的点击事件

以往防止子view事件拦截,习惯性使用clickable、focusable等属性,但是对于双层嵌套却怎么也不起作用。最终在适配器中使用以下方法解决了问题:

2019-01-07 22:51:36 3114

原创 Android Studio3.2版本与databinding不兼容解决办法

最近在官网下载了as的最新版本3.2,本来想试试新特性,没想到反倒踩了几个坑,编译速度变慢了、和databinding不兼容,每次修改xml文件后都需要重新rebuild后才能找到控件id,WF……什么鬼?省去一万字的吐槽,上网也没搜到有什么解决办法,后来发现同事的新版本没问题,找找原因他使用的是3.2.1版本,这个版本只能通过as检测更新升级(官网现在最高版本还是3.2),抱着试试的态度升级了下...

2018-12-20 09:22:05 3579

原创 Activity相互跳转出现重复调用OnCreate()的异常情况

真的是浪费时间啊,此处埋坑以防再犯今天在做分享功能的时候,发现跳转到分享页面再返回到之前页面时,整个页面会重新加载,出现一系列问题就不说了,而且友盟分享的回调提示也没有弹出来,很奇怪,打了个Log,不出意外页面重新走了OnCreate()方法,可是不应该啊,我并没有销毁页面跳转,不应该直接走OnResume()吗?真是百思不得其解,怎么会出现这种情况???想了半天才发现前段时间做测试把系统设置...

2018-11-08 22:34:06 2019 1

原创 Android与JS交互篇--JSBridge的使用

在android日常开发中,大家或多或少都会碰到原生嵌套web页面,大家可以使用传统的方式实现Native与JS的交互,这里就不多介绍了,现在我们简单介绍下网上目前比较流行的已经封装好的框架JsBridge。可参考官网github地址:点击打开链接先看下接下来将要实现的效果图:一、JsBridge的基本概念Android4.4以前,谷歌的webview存在安全漏洞,网站可以通过js注入就可以随便拿...

2018-03-07 22:45:29 10504 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 524

原创 ButterKnife运行时Caused by: java.lang.IllegalStateException异常

造成这个问题的原因是在SetContentView之前就写了ButterKnife(this) 正确写法应该 是在setContentView之后才写

2018-01-03 17:51:04 3650

原创 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 13315 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 4500

原创 android动态添加checkbox及样式(替换默认图片)

日常开发中,常常会碰到自定义控件动态添加checkbox以及更换样式的情况

2017-12-04 21:27:06 8049

原创 Gradle实现多渠道打包(不同资源文件打不同的包)

在日常开发中,我们或多或少都会碰到多渠道打包的一些问题,有些是同一个版本要上传到不同的平台,有些是要提供给不同的代理商,中间可能需要改动里面的图片或其他的一些资源文件,对于版本比较少的我们可以简单的替换,但是遇到很多版本时,相信再通过手动替换会令人吐血~ 废话不说,先来看下效果图,下面是根据不同平台需要打包出来的两个apk apk界面展示效果如下(为了方便展示我在productFlavors

2017-11-28 23:11:16 8229 1

原创 ORMLite快速入门操作

大家在做安卓项目时肯定都会碰到数据库存储,原生的效率上会比较低,为了提高开发效率,大多公司会用一些框架,目前市面上比较流行的框架有ormlite、greenDao、SQLBrite、Realm等,其中ormlite是JDBC(Java数据库连接)和Android的轻量级ORM java包,而GreenDao则是一种轻快地将对象映射到SQLite数据库的ORM解决方案。 下面让我们快速的学习一下or

2017-11-22 16:32:16 10637 2

原创 java校验手机号码、固定电话的合法性

一、规则说明1、全国固定电话区号大体分两种,三位数和四位数(400固话除外) 中国电话区号三位数有十大城市。分别为: 北京市010 广州市020 上海市021 天津市022 重庆市023 沈阳市024 南京市025 武汉市027 成都市028 西安市029

2017-11-08 16:52:31 10142 2

原创 解决新建ionic项目时安卓的tab栏在顶部问题

一、前言在创建ionic项目时,tab导航栏在IOS里是放在底部,但在安卓项目里却被置顶了,那么如何解决呢?其实很简单,只需要添加以下代码~二、解决办法我们可以找到www文件夹–>js文件夹–>app.js文件 在config方法里添加如下代码.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {

2017-10-31 09:57:32 558

原创 EditText光标不显示问题

前言之前项目中碰到过,好久不用又忘了,今天在这里做个笔记方便日后查询吧。

2017-10-23 13:08:48 3624

原创 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 19772

原创 JAVA中Properties的使用

Properties类Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。

2017-09-22 18:17:00 435

原创 java实用小技巧——巧用最大值

1、前言日常开发中,我们会碰到各种各样的问题,如果每个问题都能找到合适有效的方法解决,一定会做到事半功倍的效果!

2017-09-22 14:15:51 749

原创 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 1055

原创 Handler由浅入深(二)--Handler的实现原理以及Looper、Handler、Message三者之间的关系

1、前言上一篇介绍了Handler的几种基本使用方法,本篇将介绍一下Handler的实现原理,这也是面试经常会被问到的问题,其实我们只要搞清楚Looper、Handler、Message三者之间的关系,自然就明白了Handler的实现原理。

2017-09-17 10:27:31 347

原创 Handler由浅入深(一)--Handler的基本使用

为什么要使用Handler1、UI更新是在主线程(即UI线程,非线程安全) 2、主线程不能执行耗时操作,耗时超过5秒会出现ANR现象 3、子线程无法更新主线程UI 由此产生了Handler消息传递异步机制,子线程负责耗时操作,主线程负责更新UI,Handler充当子线程和主线程之间的桥梁作用;Handler的一些特点1、Handler可分发Message对象和Runnable对象到主线程

2017-09-14 23:08:06 473 1

原创 java中使用逗号将集合拼接成字符串

今天介绍一个拼接字符串的小技巧,比较简单适用! 日常开发中常常会碰到需要用逗号将集合中的String数据或者对象中的某个String成员拼接成一个完整的字符串(末尾没有逗号,中间用逗号隔开),有的人可能喜欢先拼接最后再用subString截取内容(如:1,2,3,4,5,)截取最后一个逗号前面的所有内容

2017-08-21 22:42:01 22304 5

原创 Android中使用ScrollView内嵌ListView出现显示不完全问题

该问题是一个经常会碰到的问题,之前是只用在一个布局文件中,所以写死固定高度凑合也能用,但是当使用ScrollView内嵌ListView写成一个自定义控件无法判断高度时这种方法就不适用了。下面介绍一个很简单的方法一次性替换,永久无忧~

2017-08-17 22:48:29 533

原创 java中static关键字的用法总结

前言static对我们来说并不陌生,也是面试经常碰到的问题,今天抽空整理了一篇总结作为笔记保存起来! static用法可以分为三大块:静态变量、静态方法、静态代码块,下面将从这三个方面分析静态方法通常在一个类中定义一个方法为static,即为静态方法,无需本类的对象即可调用此方法

2017-08-01 22:31:50 388

原创 Android的gradle中compile和provided的区别

gradle中compile、provided、compile files和compile project的区别

2017-08-01 11:10:07 12498

原创 Android使用WheelView出现只显示一位数字的问题

问题最近使用WheelView做日期滚动轮,做完之后发现有个bug,即当一个WheelView上下可见字段都为一位数时保存退出(如:“时”下面显示为0、1、2),再次进入查看时,该条WheelView都变成了一位数(只显示首位数字,如:11、12、13只显示1),查看了代码也没发现什么问题,问了同事有没有遇到过相同问题,这才知道原因!

2017-07-27 15:14:07 1784

原创 Android各控件实现背景选中效果总结

前言selector实现背景选中替换效果,很容易的一个东西,但每次用到都很容易把各控件的使用方法记混,索性写一篇总结方便下次查找。本篇总结的控件包括CheckBox、ImageButton、RadioButton、Button、ImageView。推荐使用CheckBox

2017-07-25 17:56:20 2649

MVC、MCP简易demo案例

该项目包含两个Module,展示了MVC和MVP的简易用法,代码简洁易懂,适合初学者学习

2018-02-27

Git最新版本下载(内含MAC、window两个版本)

该压缩包内含MAC、window两个最新版本,版本号分别为2.15.0(mac)、2.15.1.2(window64位)。

2017-12-05

Gradle多渠道多资源打包完整代码下载

Gradle多渠道打包完整代码,下载即用,只需添加你需要的平台,更改你所需的配置即可!

2017-11-29

ORMLite入门简单操作完整代码

该案例实现了ormlite的基本操作,以及外键的使用,可供参考学习!

2017-11-29

Gradle多渠道打包完整代码下载

Gradle多渠道打包完整代码,下载即用,只需添加你需要的平台,更改你所需的配置即可!

2017-11-28

JD-GUI下载

java反编译工具,内含MAC、window两版,下载解压即用,无需安装!

2017-10-19

Android捕获异常并实现文件的上传

安卓基于UncaughtExceptionHandler实现异常的抓取,并实现使用retrofit网络框架的上传,该压缩包为完整案例

2017-07-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除