博客好长时间没有更新了,因为年底和年初,你懂的,希望以后进入轨。

前几天在开发过程中遇到这样一个HTTP请求错误:

1
2
okhttp too many follow-up requests: 21

看到okhttp反应过来是底层请求出现问题了,以前从来没有遇到过,很好奇。在github上面okhttp库搜索了一下上面的关键字,找到下面的代码:

Read More

博客好长时间没有更新了,由于前段时间疯狂赶项目,有些问题没有来得及时整理,后面慢慢总结一下。

前段时间在优化相机扫描二维码时,遇到了一个内存溢出问题,内存被用完了,日志中出现E/dalvikvm-heap: Out of memory on a 2366828-byte allocation错误提示,App也没有崩溃,只是相机不再输出拍摄到的内容。使用Zxing做过二维码扫描的同学都知道,被扫描到的内容会不停的被处理,并识别出二维码内容,如果有。而此时内存被用完了的现象是:相应的回调处理识别二维码内容的方法没有被调用。于是展开了排查。

Read More

前几天编译boost1.65.1版本,遇到一些问题,主要是与环境和版本有关系,如果不知道这些细节,很难找出问题。这里记录一下。

一、boost库编译

在windows下编译boost库可以参照这里:https://gist.github.com/sim642/29caef3cc8afaa273ce6 ,整个过程配置都可以按照上面来,但是要注意下最新版本的MinGW,同时还要注意是64位的还是32位的。

因使用的boost版本是目前最新版本的,所以要求内置gcc编译器的MinGW也要是最新版本的,否则在执行b2命令设置toolset=gcc时,会提示找不到gcc。另外还要注意系统是32位还是64位,对应的gcc也要相同的版本。

Read More

前几天处理一个很奇葩的问题,解决过程可谓一波三折啊,处理起来却很有意思,这里记录一下。

事情的起因是同事写了一个在android系统调用系统相机的拍照的功能,将路径通过Intent传过去,照片拍好后保存到路径,通过路径取这张照片。

突然有一天点这拍照功能无效了,直接crash。一看异常日志,发现抛出的是ActivityNotFoundException。第一反应是以为是Activity没有注册或者打包出现问题了,于是把Apk反编译,在AndroidManifest.xml中检查了下注册,在dex文件中也找了下相关的类,结果发现都没有问题。

Read More

前几天使用golang时,遇到一个很奇怪的问题,原因是对golang不熟悉,所以记录一下。

在使用append()函数给slice中添加元素时,slice的初始大小可以为0,也就是len可以为0。每次向sliceappend的时候,如果容量cap不够,会自动对slice进行扩容,也就是改变slicecap的大小。

Read More

前几天在使用Okhttp时遇到两个坑,这里记录一下。一个是在请求头中不需要设置Accept-Encodinggzip,使用Okhttp默认的就好;第二个是添加到Okhttp请求头里面的键值对不能为空。

Read More

前几天sublime发布正式版本,mac下面一直没有发现跟windows下的notepad++相媲美的工具,于是装了下sublime玩玩,也试了下markdown插件,结果发现太坑爹了,于是走上了不归路。

装完markdown插件后,打开md文件,发现界面很丑,MD风格都被吓跑了。如下图所示:

Read More

前几天使用命令行adb install安装APK文件时,安装失败,遇到了这个错误提示:

1
INSTALL_FAILED_UID_CHANGED

突然反应过来了,刚刚使用手机的root权限看app的缓存数据,命令行还在那个/data/data/com.xxx.app目录下,由于命令行的占用,所以这个包名路径没有被删除掉。赶紧退出到/data/data/目录下面,ls一看,这个包名路径还存在,用rm -rf一删除,再安装试下,成功了。

Read More

前几天在使用gradle编译项目插件,突然遇到这个错误:

1
2
3
4
5
6
7
8
9
10
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileReleaseJavaWithJavac'.
> Failed to create MD5 hash for file 'E:\workspace\as\app\libs\xxx.jar'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED

Read More

这几天在解决客户的一个问题,说用了发给我的sqlite的数据库文件会发生数据上传失败问题,于是结合发过来的数据库文件准备看一下。

先是通过adb push命令把文件copy到手机,然后cp到应用的缓存目录(需要root权限),覆盖原来的数据库文件。结果应用一运行就报了如下的错误:

Read More

前几天在项目开发中遇到一个很奇葩的问题,在应用中做了一个清除应用缓存功能,将缓存目录文件中所有的文件都删除,然后再重新初始化的时候,这个目录就不能创建文件和目录了。在红米手机和魅族手机上试了,都会出现这个问题,华为手机上却没有这个问题,我的MOTO手机上也有这个问题。

Read More

之前有写文章说别人对网上文章的看法,这次写的是我对网上文章的看法。一直以来对网上的文章的说法都抱有怀疑态度,一般都是把网上的东西作为参考,找准关键的地方,他的说法与自己写的有什么区别?一对比就知道哪些地方有欠缺,是什么原因。而不是直接copy过来使用。

Read More

前几天遇到了线程死锁问题,导致系统ANR。然后拿到系统/data/anr/traces.txt日志文件后,进行分析,然后找到原因,并解决了问题。

java线程产生死锁的原因,要么同时满足死锁的四个条件,要么是android系统机制的原因,认为发生了类似死锁的情况而导致系统ANR

Read More

基本介绍

本文是针对android开发中的build.gradle文件中的常用配置总结,一些配置是在特定的场景下才使用,一些是为了解决一些问题才加上。所以默认还是使用在Android Studio工具中新建项目时生成的默认的build.gradle文件中的配置,等遇到了问题,再来加一些配置。

Read More

总结一下学习十来天go语言的成果,看了一遍语法之后,写了一个抓取HTML然后转换成PDF文件的程序,分享一下,代码点这里。代码在目前go的1.7.5版本和1.8版本上运行没有问题,据说go向下兼容,而不像swift。但发现有些比较老的资料上的代码,在新的go版本上看不到效果,比如打印地址%p,在新版本中必须得使用unsafe.Pointer(p)转换一下,否则格式化输出指针变量不会打印出内存地址。

其中使用了两个第三方库:

Read More