自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

_陈泡泡的博客

胸中有丘壑 立马振山河

  • 博客(37)
  • 收藏
  • 关注

原创 com.google.gson.internal.LinkedTreeMap cannot be cast to XXX

刚开始非常自信,debug没问题线上有问题,大概率就是混淆文件没有添加keep,于是本地添加对SDK中类的keep,本地打包release验证,不出意外还是崩溃。因为没办法修改SDK,最终用了一种tricky的解决方案,在获取到对象的时候做个类型判断,如果是。,仔细想想就是gson做反序列化时无法转化为我们的类型,于是检查gson的语法,以为是两层。导致,去google查询按照网上的代码修改序列化和反序列化的代码还是不行。另外写一个通用的Gson序列化和反序列化的代码。仔细看崩溃的原因,关键字是。

2023-09-19 21:21:16 1192

原创 webview第二次加载带#的url 调用loadUrl()不会刷新的坑

最近在做项目的时候发现Android和IOS的webview重新加载都会存在这种情况。看log是已经跳转到相应url并且也加到堆栈中,但就是没有刷新为了让它正常刷新我做了以下尝试

2022-02-12 09:55:06 5136 1

原创 Android arm64打包支持

1、如果是在小米、OPPO、VIVO、腾讯应用宝和百度手机助手五大应用商店上架的App,无论是新上架/升级的应用都需要在2021年12月底前上传包含64位包体的APK包,不再接受仅有32位版本的应用。2、而在华为应用市场新上架/升级的应用,可在2022年1月完成上传包含 64 位版本的APK包。首先要检查你的项目中是否都包含支持64位的so库,可以在app的build.gradle中添加如下代码,最后会输出不包含arm64位的so库tasks.whenTaskAdded { task -&.

2022-01-12 10:11:02 9389

原创 gradle执行cmd脚本

问问

2021-12-11 11:16:16 5043

原创 Android TextView循环滚动弹幕效果

最近做需求要写一个滚动弹幕的特效,要求是一直循环滚动,并且从左边出去部分的要从右边进入。1.首先想到的是用Android TextView自带的跑马灯效果,设置一下android:ellipsize="marquee" ,但是发现这种方式局限性很强,只有文字的长度超过了TextView的长度才会滚动,并且只有全部滚动完成才会开启下一次的滚动。2.参照GitHub - dreamgyf/MarqueeTextView: 走马灯式横向滚动的TextView(无论内容是否超过一行都会滚动)原理是创建一个

2021-11-04 17:11:35 2594

原创 Android以aar形式集成Flutter module

由于公司项目是内网开发,故本文的集成形式是以本地打aar包直接引入到现有的Android项目中,这种方式其他开发人员不需要搭建Flutter的环境也可以集成开发。我的flutter版本是2.0.3????一、创建Flutter module首先要在Android Studio中安装Flutter和Dart的plugin,接着我们选择File -> New -> New Flutter Project -> Flutter Module初始化创建的Module是一个可

2021-06-26 15:32:37 551

原创 ConstraintLayout中只显示一个TextView溢出显示问题

TextView文字太多导致聊天气泡显示不完全由于我的view是单独在一行展示,所以只能进行左or右约束,我进行右边约束之后给了margin_right导致view溢出显示区域(ConstraintLayout有一个20dp的paddingLeft),问题图片如下所示:箭头指向的地方就是溢出被裁掉的部分<TextView android:layout_width="wrap_content" android:layout_height="wrap_con

2021-04-22 19:55:43 668

原创 commit XXX is a merge but no -m option

今天在进行revert操作的时候报了标题所示的错误,思考一番后解决,以下是解决方法我的操作是在F1,F2分支上修改并提交之后,在github上提交merge request请求合并完成之后,通知F1的需求不上了,需要revert(两个分支无冲突,直接merge和revert就行)此时有两种方案:第一种:直接在本地建立一个revert_F1分支,然后使用 git revert <commitId> 即可,这时我运行git revert a3eb5db,直接报错commit XX...

2020-12-24 21:41:25 6592 2

原创 Android Studio的升级

一般大家自己电脑都可以自升级,直接在Android Studio中上面导航栏找到check for updates选项点击就行。而如果大家所在公司保密做的比较好,不允许访问外网就只能另想办法了,下面提供两种方案:一、增量更新增量更新就是在现有的基础上update,具体可以参考这篇博客https://blog.csdn.net/qq_28535319/article/details/99544768按照上面博客的做法到最后一步提示一些无法解决的冲突,具体原...

2020-12-23 14:46:50 568

原创 RecyclerView根据type加载不同的布局

最近项目中使用的多种样式的布局是通过RecyclerView.addHeadView()来实现的,一个RecyclerView中嵌套了多个RecyclerView,导致代码很冗余很丑陋,而且性能也不好,就考虑重构,在这先写个demo

2020-12-13 23:17:26 677

原创 Android实现AES加密

public class AESUtils { private static final String TAG = AESUtils.class.getSimpleName(); /** * 采用AES加密算法 */ private static final String KEY_ALGORITHM = "AES"; /** * 字符编码(用哪个都可以,要注意new String()默认使用UTF-8编码 getBytes()默认使用IS.

2020-10-14 20:36:41 7074 1

原创 Android各个版本对应的SDK

因为经常忘记各个SDK对应的Android版本号,所以在这里记录一下目前市面上大多数的APP中 minSDKVersion = 19 Google developers 上目前最小的版本号也是19平台版本 SDK版本 版本名称 11.0 30 Android R 10.0 29 Android Q 9.0 28 Pie (Android P) 8.1 27 Oreo(Android O)(奥利奥) 8.0...

2020-08-22 11:08:37 1591

原创 修改jar中.class文件

背景:在开发中遇到三方jar包中出现了错误,需要修改相关代码进行更新1、查看.class文件jar包就相当于一个压缩文件,windows中直接解压就行。可以在 jd-gui 中查看要修改的.class文件,或者把.class文件拖进idea中查看。2、修改.class文件方法一:在解压的文件夹下,新建与class文件同名的java文件,把class中的代码复制到java中,并修改相关代码,最后在命令行中运行javac命令编译成.class文件与之前的进行替换。方法二:如果要修改..

2020-07-06 14:49:40 1193

原创 git常用命令

常用操作git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | awk ‘{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf “added lines: %s removed lines : %s total lines: %s\...

2020-05-06 17:57:24 232

原创 IDEA中Java文件和Kotlin文件互相转换

一、Java转换为Kotlin在Idea中,选择要转换的java文件,然后在编译器上点击Code可以看到最下面有一个Convert Java File to Kotlin File(将java文件转化为kotlin文件),也可以使用快捷键Ctrl+Shift+Alt+K二、Kotlin转换为Javakotlin文件转为java文件无法还原为正常的java语法,需要我们再进行二次修改...

2020-04-30 11:59:43 12162

原创 java版剑指offer(更新中)

题目来源:剑指offer(牛客网),可在牛客网进行练习:https://www.nowcoder.com/ta/coding-interviews1-10题:11-20题:21-30题:31-40题:41-50题:51-60题:61-66题:...

2020-03-29 22:42:50 179

原创 Handler解析

Handler是Android的消息传递机制上层(应用层)的实现,通过它可以把一个任务切换到Handler所在的线程中执行,只不过我们经常使用Hnadler来更新UI。首先介绍一下消息机制中包括的四个要素 Message(消息):需要被传递的消息对象,其中包含了消息ID,消息相应方以及回调方法等,由MessageQueue统一列队,最终由Handler处理。 ...

2020-03-15 18:23:21 565

原创 关于callback回调

callback回调是java里所有的,在Android中应用的地方非常多。举一个简单的例子,你妈妈去做饭,你对你妈妈说饭做好了叫我吃饭(注册监听),然后妈妈做好饭叫你(调用方法),你听到后去吃饭(执行回调方法),这个过程其实就是一次回调事件。public class Mother { private StateChangeCallback mStateChangeCallb...

2020-02-20 18:01:05 378

原创 Android的Listener监听事件分析

Android中的回调一直是我难以理解的一部分,总是很容易绕进去,但是细细想一下其实这些方法或者称之为函数都是在一个线程乃至一个进程中执行,肯定会存在先后的顺序,下面就先分析一下Listener,以后再分析一下Callback的回调。下面的demo是我自定义的一个listener事件,其实他们的写法千篇一律,只要自己写一遍理解了以后就很容易了public class CustomV...

2020-01-18 22:26:35 1624

原创 2019年总结

我是一个感性的人,临近春节,总想写点东西给自己的2019年画上一个句号。回顾我的2019,确实是收获了很多东西,2019年我处在大三大四的节点,回顾之前的两年,忙于社团,忙于玩耍,收获了很多朋友,但是并没有在专业课或者说是技术上下很大的功夫,并且也因为时间问题错失了进入实验室的机会(很多学校的培养方案不同,虽然我是软件工程专业科班出身,但是学院人很多,不能像其他学校一样都可以进实验室和老师做项...

2020-01-18 15:35:00 226

原创 网易云音乐等三方app如何在锁屏显示

这里我本来准备反编译一下网易云音乐,但是发现github上有一个仿照网易云音乐的开源项目,参考自 https://github.com/aa112901/remusic,其他的应用在锁屏上显示的原理也都一样,不过需要在手机中为应用开启 锁屏显示 这一权限首先我们要明白所有显示在手机上界面都是由一层一层的Window构成(Activity是一个Window,锁屏也是一个Window,具体...

2019-12-23 20:55:45 1972

原创 ubuntu16.04使用wine安装Wechat、QQ、Tim等windows软件

笔者的开发环境是ubuntu16.04首先今年QQ出了适配linux的版本,大家直接可以去软件中下载安装(体验感真的差,大家可以尝试一下)然后wechat也有网页版,但是我相信很多人和我一样登录提示账号存在安全问题不能登录,并且electronic-wechat也是调用的网页端的接口,所以你网页版微信上不去这个也是上不去的。最后解决办法就是下载wine,再其上面运行wecha...

2019-12-07 17:41:37 1402

原创 AS查看本地修改记录 shell的history命令显示时间

今天对代码进行编译的时候忘记了是先修改的文件还是先进行的编译,于是将编译时间和修改代码时间做了对比1、AS查看本地修改记录AndroidStudio最上面找到VCS-->Local History-->show History(如果是灰的,点击一下代码区域再试一下)2、history命令显示时间vim~/.bashrc最后添加 export HIST...

2019-11-28 14:36:16 805

原创 解决AS中fetching documentation悬浮文档无法查看

笔者的AS版本号为3.1.4首先保证悬浮文档的提示已经开启(在setting-->Editor-->General)然后下载SDK的文档,如图下载完毕以后再把鼠标放上之后就会出现提示了...

2019-09-25 17:36:43 208

原创 Android Studio布局预览不显示的解决方法

我和往常一样搬砖写demo,突然我发现我的design什么控件都不显示了,只有一个白板,让我心存疑惑,解决办法如下:1、在design界面刷新试试,不行重新打开项目试试(基本没啥用)2、在design界面更换Theme如下我这里是AppTheme,换成最上面的Theme就能看到文字了,但是背景好像消失了3、在res/values/styles.xml文件中style标...

2019-08-22 18:48:22 22190

原创 AS报错:Failed to open zip file. 解决办法

今天帮别人看一个项目,兴致勃勃的打开,AS界面下突然就报了BUG如下:然后我打开build.gradle文件看到gradle版本号为3.0.1com.android.tools.build:gradle:3.0.1我以为是没有这个版本的gradle包,于是去网上下载了一个,但是还是不行于是直接百度,找到了解决方法,在这里记录一下方案一:如果自己以前的项目可以打开,直接把...

2019-08-13 18:18:27 14077

原创 Android:layout_width和Android:width的区别

前言:今天看属性动画时发现当我们对一个Button按钮做动画时是没有效果的,代码如下:private void performAnimate(){ ObjectAnimator.ofInt(mButton,"width",500).setDuration(5000).start();}@Overridepublic void onClick(View v){ if...

2019-08-04 15:21:39 15024

原创 我的Android经历

以下就是我的个人心血来潮写的一堆自我总结的废话,刚入坑Android的小白可以看下,大佬直接关闭即可今天突然感觉想写点东西给自己,也想写给很菜但是想要入坑Android的朋友们,希望你们看过会有所收获或感触吧。先给大家说说我把,笔者软件工程专业本科出身,大一大二纯混和玩(在学生组织有任职,后悔当时没有谈恋爱),大二下学期选学的java方向(算是有点java基础,不过现在也还给老师了)...

2019-06-15 09:15:12 180

原创 使用BottomNavigationView实现底部导航栏

笔者的SDK版本为27,此文章适合27及以下,如果是28及以上版本请看使用谷歌官方BottomNavigationView实现非md风格的底部状态栏更加简单首先我们需要了解Bottom Navigation是5.0(API level 21)新出的一种符合Material Design规范的导航栏规范。在Android Studio中我们可以直接选择新建 BottomNaviga...

2019-05-12 18:55:51 1698

原创 TreeMap实现自然排序与定制排序

在Java中,如果我们想要实现对我们类中的对象按照一定规则进行比较,就要在类中实现Compare类并重写compareTo方法(自然排序)。首先我们要新建一个类,在这个类中必须实现Comparable接口,并重写这个接口的compareTo方法public class User implements Comparable{ private String name; p...

2019-04-28 15:13:48 1559

原创 Idea中使用spring boot 实现热部署

在项目开发过程中,经常会修改代码,为了查看自己修改后的结果往往需要重新启动应用,而这一过程是非常浪费时间的。开发热部署可以再改变程序代码的时候,自动实现项目的重新启动和部署,大大提高了开发调试的效率。在spring boot 中实现热部署的步骤如下:一、修改pom.xml文件添加 spring-boot-devtools 的依赖配置<dependency> ...

2019-04-14 11:07:23 146

原创 使用idea启动spring boot项目时遇到The Tomcat connector configured to listen on port 8080 failed to start

最近开始学习springboot,而第一步运行就遇到了bug如下图所示rg.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1008) ~[tomcat-emb...

2019-03-26 17:31:33 3086

原创 简单算法:求“完数”

一个数如果恰好等于他的因子之和,这个数就称为"完数"。(因子:除去这个数本身正的约数)例如6=1+2+3输入n,求n以内的所有完数public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int count =...

2019-03-24 19:35:53 3280

原创 java 实现快速排序

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); //输入字符的个数 int a[] = new int [n]; for (int i = 0; i < n; i+...

2019-03-24 16:34:15 111

原创 As遇到Gradle project sync failed. Basic functionality (e.g. editing, debugging) will not work properly

由于好久没用Android Studio或者自己把东西删除或迁移的缘故今天新建一个项目出现了如上的Bug查了好多资料后明白是项目中 gradle-wrapper.properties文件 与build.gradle文件的gradle版本不对应于是打开自己以前的项目进行对照并改正,截图如下build.gradle文件中:gradle-wrapper.propertie...

2019-02-25 18:22:12 1122 1

原创 eclipse与Mysql数据库是否连接的检验

先去下载与Mysql数据库版本匹配的架包,然后导入到项目中,在这里我用的是Mysql8.0Mysql8.0的驱动类名是 com.mysql.cj.jdbc.Driver 首先新建一个Demo类,然后进行数据库的连接即检验,代码如下package cb.meizu.util;import java.sql.Connection;import java.sql.DriverMa...

2018-12-02 13:31:29 5161

原创 bootstrap实现注册和注册的验证

bootstrap实现注册和注册的验证首先你需要学习bootstrap中与表单有关的知识,其次需要了解JS组件系列——Form表单验证神器 BootstrapValidatorbootstrap中文官网bootstrapvalidator源码话不多说,直接上代码html+css部分&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;l

2018-11-27 17:04:18 2335

空空如也

空空如也

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

TA关注的人

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