- 博客(224)
- 收藏
- 关注
原创 不为谁而作的blog
很久没写博客了,从研三最后一段时间,到工作后的一年多时间里面,CSDN几乎没啥进展,一方面因为工作需要,自己的技术栈做了全方位的调整;另一方面,工作之后,属于自己的时间就特别特别少了,难以集中时间去搞这些东西了,所以博客就进入荒芜状态。有段时间很纠结,感觉自己失去了写博客的动力,一方面,同事里面大神很多,有自己手动撸网站做的很好的技术大神,也有CSDN年度十佳博主,知乎大V,想想自己“水”的那么多博客,惨不忍睹,不可比拟,不忍直视,想想自己写的那些内容,无非是一些常规知识的梳理,基本上我能写的,别处也有,
2020-11-22 23:51:21
830
3
原创 Android Studio :Gradle‘s dependency cache may be corrupt
问题描述好久没用Android Studio了,打开之前的项目居然会有问题——实际上,从使用经验上而言,AS本身不应该犯如此低级的错误,但由于AS本身的一些逻辑是需要请求google服务的,由于某些原因,可能请求不是很顺利,就导致这些功能不可用了。解决方案这个问题造成的本质原因是Gradle缓存出了问题,AS缓存机制会优先请求缓存,然后再请求网络,但是这个缓存如果存在问题,那么可能就会出现既请求成功,又无法使用的局面,所以,清理一下缓存,或者重新设置一下gradle文件配置就行了。清理gradl
2020-08-02 22:38:14
794
原创 Error:Could not download protobuf-java.jar (com.google.protobuf:protobuf-java:3.4.0)
问题描述标题长度限制了,原本错误的全部信息应该是:Error:Could not download protobuf-java.jar (com.google.protobuf:protobuf-java:3.4.0):No cached version available for offline modeAS的环境配置大部分依赖于Gradle,而Gradle文件又是自动配置的,所以很多...
2020-02-04 17:36:46
12478
原创 2019年个人总结
2019原本想在12月底就写一下总结的,但是12月底一直在忙一个紧急版本,如今到年前最后一周了,该发的版本都发了,也没啥紧急的任务要做,恰逢周六,静下心来总结一下我的2019吧。2019算是比较平凡而意义重大的一年,所谓平凡,回望全年,Nothing special,按部就班的毕业,按部就班的进入工作岗位,按部就班的进度人生;而所谓意义重大,仔细想想,从校园到社会,虽然没啥惊喜,但也算是人生...
2020-01-18 16:20:27
2760
7
原创 重写TextWatcher监听方法onTextChanged,调用EditText.setText死循环问题解决方案
问题描述在一个EditText控件中,监听文字变化状态,使用了TextWatcher中的onTextChanged方法,大抵如下: input.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int...
2019-10-25 20:26:14
3181
4
原创 android.content.res.Resources$NotFoundException 问题解决方案
问题描述Process: com.jason.morelistitem, PID: 15181android.content.res.Resources$NotFoundException: String resource ID #0x5at android.content.res.Resources.getText(Resources.java:367)at android.widge...
2019-10-24 19:52:29
3321
原创 使用Volley请求网络图片加载
前言Google官方文档中并没有介绍Volley请求网络图片的方法,但实际上,Volley提供了十分强大的网络图片加载的功能,本文是对Volley关于请求网络图片的3种方式的学习总结,内容上参考了郭神的帖子(原文链接)Volley请求网络图片的方法Volley请求网络图片的方法相比于String和JSON,要多一些方式,但从底层上看,还是基于RequestQueue+Requestd 的方式...
2019-10-10 19:54:01
913
原创 使用Volley发起网络请求
前言本文是对Google官方文档中关于Volley部分的学习和总结,原文地址详情参考,通过对文档的翻译和学习,总结出自己的理解,通过一个Demo来展现Volley概述Volley是一个Google推出的一个HTTP网络请求开源库,它可以简化Android应用程序的联网操作,以更快的速度进行网络请求,很多大公司的App都集成了Volley库。Volley开源库具有的优点包括:自动进行网络...
2019-10-09 18:05:00
752
原创 Android Studio Emulator无法联网的情况
在模拟器上使用Volley库进行网络请求,发现老失败,结果发现AS的模拟器无法联网了,找了半天资料没有找到理想的解决方案 想了想,最近升级了最新版的AndroidStudio 3.5,可能是模拟器自身的缺陷吧。下面记录一个比较笨,但是有效的方案:Step 1 :打开cmd命令行,获取设备号android list device 先不用管前面一大串字符,找到自己需要的设备名称,...
2019-10-08 21:38:56
3859
1
原创 AIDL学习总结:使用AIDL实现跨进程通信
AIDL学习总结(一):使用AIDL实现跨进程通信前言AIDL基本概念AIDl数据类型第一个Demo:Client向Server发送数据Server端工程Client端工程第二个Demo:Server回调Client接口Client端回调AIDLServer端回调AIDL源码链接前言 本文是对AIDL跨进程通信的学习和总结,主要介绍了AIDL的基本概念和使用方法,通过一个简单的Demo来...
2019-09-30 17:54:30
2533
原创 SDK开发:AIDL通信中bindService无法正确onServiceConnected的问题
问题描述 将跨进程通信模块封装到SDK中,配置到目标APK中,结果发现服务连不上了,四处Log,结果发现ServiceConnection接口中的onServiceConnected压根没有回调,看来bindService没有发挥作用。 Intent intent = new Intent(); intent.setAction("com.jason.aidlconnection"); ...
2019-09-28 10:09:23
2137
原创 在build.gradle中添加Java8配置
如果在代码中使用Java8特性(常见的是Lambda表达式),那么需要手动添加Java8支持。通常AS提供自动配置的功能,但是有时候这个功能不怎么灵,所以还是记一下怎么手动配吧,方便自己以后查询。 在app的build.gradle中添加如下配置即可——android { compileOptions{ sourceCompatibility JavaVersio...
2019-09-27 09:25:49
3407
原创 WindowManager权限:android.permission.SYSTEM_ALTER_WINDOW
Android 6.0之后(API>23),如果APP中使用WindowManager.LayoutParams申请一个窗体布局并显示,那么需要申请android.permission.SYSTEM_ALTER_WINDOW权限,因为Google认为,显示顶层视图会影响其他APP的送体验,理应得到用户的许可—— 关于该权限的定义,详情参见链接 那么,具体做法可以参考——if(...
2019-09-09 15:14:51
1318
原创 OkHttp请求http链接失败的问题
在 Android API 29 平台上编译,发现网络请求数据异常,四处Log,找了半天发现是OkHttp在请求网络链接的时候直接onFailure了,莫名其妙,找了半天资料,才发现原来是Android P的锅——Android P全面禁止了非https链接,并严格审查网站的CA证书(详情参考)但是国内的很多网站都是非https的,怎么办呢?需要使用xml文件设置属性禁用掉这一设置——在re...
2019-08-23 18:04:22
8624
14
原创 Android使用Material Design实现悬浮按钮
前言 本文是对《Android第一行代码》第十二章《最佳UI体验——Material Design实战》中关于悬浮按钮实现的学习和记录,主要内容包括——FloatingActionButton控件Snackbar控件CoordinatorLayout布局其实关于悬浮按钮的实现十分简单,Design Support库中做了大量的封装,只需要运用以上3个基础控件就可以完成一个最简单的...
2019-08-22 09:56:49
1325
原创 Android 使用Material Design实现滑动菜单
DrawerLayout布局 DrawerLayout是Design库中实现滑动菜单效果的支撑性布局,它允许放入两个直接子控件,第一个子控件是主屏幕中的内容,第二个子控件是滑动菜单中显示的内容。我们在activity_main.xml文件中使用DrawerLayout布局如下:<?xml version="1.0" encoding="utf-8"?><android...
2019-08-20 18:58:04
1349
1
原创 java.lang.RuntimeException: invalid channel for service notification
在APP中使用台前服务并创建通知,发现报错了—— 代码本身应该是没问题的,因为是照着Demo仿写的,看来是环境出了问题,运行在Android Q(API29)上就会出一些乱七八糟的问题。在查阅了Android文档之后发现原本的NotificationCompat.Builder (Context context)被废弃,在API26之后,创建通知需要使用新的构造器Notification...
2019-08-19 15:58:27
8938
4
原创 Android Studio3.4.2 Code Completion 不区分大小写
默认状态下,Android Studio的代码填充提示是大小写敏感的(case sensitive completion),可能是考虑到Java语言的命名规范,大小写敏感匹配的方式能够比较高效的找到目标API。但实际上,这种方式也带来一定困扰,比如说—— 在误写大小写,或者你根本不知道该大写还是小写的时候,代码提示就完全瘫痪了。所以还是把这个设置给取消吧—— 在Setting-&g...
2019-08-17 10:56:47
2039
原创 Android Studio3.4 中无法找到Android Device Monitor的问题
Android Device Monitor是Android Studio提供的一个用于设备监控的子功能,以往在Tools菜单栏中可以直接点出,但是最新的Android Studio版本中取消了该选项,使得AD不是特别好找了。但实际上,Google官方并没有取消该功能,通过下面几种方法还可以继续使用monitor 如果之前在PATH环境中配置过ADB环境,那么其实可以直接在命令行里面调用m...
2019-08-16 10:42:15
2906
4
原创 Android Studio:java.io.IOException: Cannot run program "aapt",: CreateProcess error=2
使用gradlew makeapk指令生成APK包,结果报错—— aapt是Android Studio中十分强大的一个工具,其功能之一就是打包程序,如果找不到这个路径的话,的确是要出问题。谷歌了一下网上的信息,大部分是关于Linux平台的,看来这个问题多发于Linux系统下。重新牌子了一下ANDROID_HOME的路径,没有效果,然后用了一种简单粗暴的方式:直接把build-tools...
2019-08-12 15:14:24
2073
原创 Java Lambda表达式学习总结
Lambda表达式语法总结情形1: (Type x,Type y)->{expression with return};情形2: (x,y)->expression情形3:x->expression情形4:()->expression函数式接口与C++ Lambda表达式的对比Lambda表达式 Lambda表达式是Java 8引入的一个新机制,它是一个可传递的代...
2019-08-06 21:29:45
526
原创 Java 集合机制学习总结
前言CollectionLinkedListArrayListHashSet前言 与C++STL一样,Java集合类库提供了一个强大而全面的数据结构类库——List、Set、Queue、Hash、Map等。但同时,Java 的设计者不希望集合像STL那样复杂,却具备STL那样强大的能力和执行效率,因此集合与STL在很多时候形相近而意不同。本文是对《Java核心技术卷Ⅰ》第九章(p344~...
2019-08-05 21:10:52
416
原创 GitHub SSH 配置
首先下载并安装Git,下载地址:https://git-scm.com/downloads 下载后默认安装即可,然后在任意文件夹点击右键,进入Git Bash界面 首先配置自己的信息,输入指令:git config --global user.name "Jason Lee"git config --global user.email "zzuljs@163.com" 然...
2019-08-04 22:04:55
538
原创 Java 异常机制总结
前言Java异常机制异常层次结构受查异常throws语句声明受查异常throws 抛出异常捕获异常try-catch块finally语句带资源的try语句分析堆栈轨迹元素前言 本文是对《Java核心技术卷Ⅰ》(第十版)第七章异常部分(264-285)的学习总结,目的是记录自己的学习路径,以及方便日后查看、复习、补充。Java异常机制 与大多数编程语言一样,Java提供了异常处理(...
2019-08-02 20:21:48
396
原创 Java不规则数组与C++二级指针异同
Java提供二维不规则数组的机制,形式如下—— int[][] twoDimArr = new int[N][]; for(int i=0;i<N;i++){ twoDimArr = new int[M]; } 其中,N和M分别是一维、二维大小,N和M可变。比如打印出一个杨辉三角——import java.util.Scanner;public class Main...
2019-07-30 19:34:30
365
原创 入职第一天
2019年7月29日,经过3个周的公司培训,开始正式踏入工作岗位了。心里有点小激动,终于可以不用跟着大老板瞎比怼了,终于可以开始为了自己的生活和向往而努力奋斗了。鱼翔浅底、鹰击长空,感觉真好。 入职前几天得知自己要从C++转入Java岗位,内心毫无波澜,毕竟转岗这种事,我3年前就经历过一次了。能用自己现成的经验产出价值,自然是很舒服的选择,无论从心里上还是身体上都很舒服。 但是我的性...
2019-07-29 14:07:54
1035
3
原创 Execution failed for task ':app:externalNativeBuildDebug'
升级了AndroidStudio到3.4之后,之前的项目开始出现千奇百怪的问题——org.gradle.internal.UncheckedException: Build command failed.Error while executing process D:\Android\SDK\cmake\3.6.4111459\bin\cmake.exe with arguments {...
2019-07-23 22:44:13
13067
1
原创 ButterKnife9.0.0-rc2 配置
升级了AndroidStudio到3.4之后,发现项目中的很多依赖库都不能用,原因是随着AS升级之后,Gradle随之升级到3.4.1,很多第三方库也需要更高版本的支撑,今天遇到ButterKnife失效的问题,原本是8.5.1的版本(基于gradle3.1),提示升级ButterKnife9.0.0-rc2,上网查了一下资料,更改配置步骤如下—— 首先在项目的build.gradle 文...
2019-07-22 17:57:50
1058
原创 Android resource linking failed
升级了Android Studio3.4之后,以前的项目出现问题——com.android.builder.internal.aapt.v2.Aapt2Exception: **Android resource linking failed**C:\Users\zzulj\.gradle\caches\transforms-2\files-2.1\f1f31426f3433123602...
2019-07-22 11:51:00
2755
原创 Execution failed for task ':app:processDebugManifest'.
使用新版的Android Studio导入以前的项目,会出现Execution failed for task ‘:app:processDebugManifest’. 的错误* What went wrong:Execution failed for task ‘:app:processDebugManifest’.Manifest merger failed : Attribut...
2019-07-22 11:19:58
2123
原创 VisualStudio 2017:connot open source file XXX.h 以及The Windows SDK version 10.0.17134.0 was not found
换了新的笔记本电脑,然后把移动硬盘上以前的项目都给配置一下,解过发现莫名其妙的抽风了—— 系统库函数打不开了,第一反应是VS装的有问题,遂用Visual Studio Installer点击修复,无果。然后乖乖上网百度了一下,原来是Windows SDK出了问题,仔细翻了一下这3630的错误,才发现,确实有那么一行字是描述该错误的Error MSB8036 The Windows S...
2019-07-16 23:00:34
1406
2
原创 word转PDF多余空白页的问题
写大论文遇到的问题,word转PDF的时候,第5页后面会多出一个空白页第6页。由于要频繁的改论文,然后转PDF看效果,这个bug就很麻烦。上网搜了一下,才知道,原来是word自身的设定就是如此。 大论文一般都会勾选奇偶页不同,word的隐藏设定就是,勾选了这一部分之后,我为了保证奇偶页不同,那么我必须每一节的文章页数都是偶数的,所以,当不足偶数的时候,word就会自作主张的增加一页空白,但...
2019-05-08 21:01:21
20653
1
原创 word2016:使用多级列表+样式表,自动生成插图清单
前言 写大论文的时候要把论文中所有的图表标题整理成一个插表/插图清单,方法有两种,第一种是在本章写好之后,手动输入并添加超链接;第二种做法是使用多级列表+样式表的方式自动生成插图/插表清单。定义样式表 多级列表是对文章标题的统一管理,主要包括标题的级别和编号等。样式表是对全文格式的管理,包括字体、字号、段落、编号……你所能用到的一切,都可以在这里设置。显然这是一种高级而高效的格式管理手段...
2019-05-08 20:44:13
8541
4
原创 Word:一级标题行首段前距失效问题
问题解决 设计一级标题三号黑体,单倍行距,段前段后距1.5行,但现实结果不如人意 显而易见,段前并没有1.5倍行距,原因在于,我在前一页使用了分页符(下一页) 虽然达到了分页的目的,但是站在word的角度来讲,本页与前一页仍然同属于一个小节,word里面放在同一节的页内首行是没有段前距的,无论是正文还是标题,均是如此。这个时候需要手动把分页符改成分节符(下一节)。 但是要注...
2019-05-07 10:45:15
51545
5
原创 C++:LNK2005:xxx already defined in main.obj
问题描述 使用一个全局变量测试多线程同时访问一个变量的性能,结果却报错了 多重定义了,于是顺藤摸瓜,找到了变量thread_index的位置// MyThread.hint thread_index = 0; 以及使用这个变量的地方——// Source.cpp#include"MyThread.h"...int main(){ ... thread_index+...
2019-05-05 09:45:03
2079
原创 Qt/C++:Access violation reading locaton 0x0000000000000005
遇到这种问题的原因有很多,如果项目中使用了指针,大概率访问了已经释放掉的内存(或者是根本不存在的内存)。回忆一下自己之前都做了哪些改动,然后对可疑的地方单步调试,总能找出问题所在的。 比如,我这个项目中,在构造函数中,对一堆指针赋初值nullptr,但是漏掉了其中一个对象指针roiSelection,然后在析构函数中有安全性判定—— if (parameter != nullptr) ...
2019-04-28 16:44:38
2406
原创 Qt:设置按钮禁用
直接使用成员函数的setEnable和setDisable成员函数,例如:ui->playVideoButton->setEnable(false); 或者ui->playVideoButton->setDisable(true); 对应的,按钮变成灰色 此时按钮处于不可点击状态,其实这种状态还可以再QtDesigner中设置,但仅限于初始状态,如...
2019-04-26 21:45:03
40649
7
原创 Qt:获取日期和时间
前言 一般而言,操作系统(Windows/Linux/Mac)的内核函数都会给出了日期时间的相关系统库函数,Qt在此基础上进行了封装,提供了获取时间和日期的3个相关类——QDateTime、QDate、QTime,使其在Qt内部空间之间的使用更加便捷。QDateTime获取日期和时间 QDateTime顾名思义,获取日期和时间,调用静态成员函数可直接获取字符串值,同时可以控制显示格式:...
2019-04-26 18:55:21
14762
1
原创 Qt:QtFileDialog打开文件选择对话框选择文件
Qt提供了完整的文件选择对话框,并对此进行高度封装,我们只需要调用一个函数就可以对文件的选择,听起来简直不可思议,在QFileDialog类中有一个静态成员——static QString getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &cap...
2019-04-17 16:39:42
40486
1
原创 Qt:OpenCV::Mat与Qt::QImage相互转换
前言 Qt和OpenCV是一对形影不离的好基友(哥俩都开源,Qt又跨平台,Linux环境友好),但OpenCV的最常用的类Mat无法直接用于Qt的QImage中,原因在于,两者对图片定义和操作有所不同——Mat的主要功能是矩阵运算,拥有数之不尽的数据类型,包罗万象;而QImage侧重于图片显示,更多的操作是在图形界面上。 因此,Mat与QImage之间的传值,要多一步转换操作。Mat转Q...
2019-04-09 13:11:17
11923
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人