日常爬坑-OKHttp3 kotlin 版本无法捕获异常

异常日志:canceled due to ....

场景:

当api请求异常时,如:404,500,然后自己手动抛异常

原因:

ReallyCall L530

如果你主动抛的异常不是IOException,就会自动给你carsh

image-20200908113640753

解决:

自己主动抛的异常的父类修改为IOException

日常爬坑-Android Transitions动画失效

最近在我的应用KeepassA中碰到了一个诡异的过渡动画问题

API版本:29

正常状态应该如下:

normal

当我从一级设置界面,进入二级设置界面后,并从二级设置界面返回时,一级界面当回主页的过渡动画消失了!!

android_ta_error
阅读更多

日常爬坑-指纹解锁Key permanently invalidated

最近我的个人应用KeepassA在bugly上收到了一个行奇怪的问题。

错误日志:

java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
......
Caused by:
android.security.keystore.KeyPermanentlyInvalidatedException:Key permanently invalidated
android.security.KeyStore.getInvalidKeyException(KeyStore.java:1368)
android.security.KeyStore.getInvalidKeyException(KeyStore.java:1413)

android.security.keystore.KeyStoreCryptoOperationUtils.getInvalidKeyExceptionForInit(KeyStoreCryptoOperationUtils.java:54)
android.security.keystore.KeyStoreCryptoOperationUtils.getExceptionForCipherInit(KeyStoreCryptoOperationUtils.java:89)
android.security.keystore.AndroidKeyStoreCipherSpiBase.ensureKeystoreOperationInitialized(AndroidKeyStoreCipherSpiBase.java:265)
android.security.keystore.AndroidKeyStoreCipherSpiBase.engineInit(AndroidKeyStoreCipherSpiBase.java:109)

阅读更多

日常爬坑-指纹解锁Invalid argument

最近我的个人应用KeepassA在bugly上收到了一个行奇怪的问题,在androidQ上出现了keyStore参数异常的问题。

异常日志

java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
......
Caused by:
android.security.KeyStoreException:Invalid argument
android.security.KeyStore.getKeyStoreException(KeyStore.java:1303)
android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
javax.crypto.Cipher.doFinal(Cipher.java:2055)
阅读更多

日常爬坑-Fragment传参失败

最近我的个人应用KeepassA在bugly上看到一个很奇怪的问题,activity在给fragment传参时,使用了赋值的方式,如下:

val f = FragmentA()
f.b = "sss"

某些情况下,b的属性死活拿不到,导致程序出现空指针异常。

阅读更多

日常爬坑-android uri 生命周期问题

最近在写我的个人应用KeepassA时,遇到了android文件uri生命周期的问题,被文件真实路径的获取搞得有点懵逼。从android p开始,谷歌对文件访问的权限限制的更加变态了,如果想兼容大多数机型,使用谷歌提供的ASF框架是一个很好的选择。

但是该框架只能返回文件的uri,并不能返回文件路径,并且随着android的进一步升级,特别是从android Q 开始,已经完全无法从uri获取到文件真实路径了!!

阅读更多

Clang编译FFmpeg常见问题

最近闲来无事,就开始研究下和ffmpeg相关都知识,看了网上关于ndk编译ffmpeg的教程,基本上都是使用gcc来编译,而ndk从r18b开始就正式移除gcc来,因此很有必要研究下clang编译ffmpeg,在此过程中遇到了不少奇怪的问题。

系统:macos
ffmpeg版本:4.1.3
ndk版本:r19c
编译器:clang

阅读更多

IJKplayer 爬坑

前段时间接到一个播放视频流的需求,网上找了不少开源框架,最终发现bilibili出的ijkplayer能完美解决我的需求,由于个人是android开发,习惯使用Cywin来编译so库,在使用cywin编译ijkplayer的过程中遇到了不少的问题;于是便有了此文。

阅读更多

Unable to merge dex

原因

第三方lib库中有support-v4库或support-v7库
这些库和你使用的support-v4,support-v7库版本不一致,导致as打包时合并dex失败
并且as有个神坑,由于V7包依赖V4包,倒入v7包会自动导入v4包,如果第三方的lib也有V4包但是版本和你的不一致就会出现这问题

解决方案:
在引入第三方库或jar时使用,删除第三方提供的android-support-v4.jar
依赖的话,直接移除support包支持

compile('com.arialyy.aria:aria-core:<last-version>'){
exclude group: 'com.android.support'
}

或强制让第三方应用使用自己的配置,如图所示:
ss

celery 爬坑

一、安装

由于celery4.0不支持window,如果在window上安装celery4.0将会出现下面的错误
flask_clery

你现在只能安装
pip install celery==3.1

阅读更多

VirtualApk爬坑 build篇

最近公司打算重构已有项目,打算把项目插件化处理,网上找了很多资料,发现滴滴公司的VirtualApk符合我们的业务需求。
本文主要讲解构建宿主工程和插件工程中遇到的各种问题。

一、Cannot invoke method getAt() on null object

请至少添加一个宿主工程或其它插件所没有的资源文件,随意一张图片都可以
参考地址

阅读更多

记一次app进程被kill的经历

一、出现问题

最近在为河北电信做定制游戏平台开发的时候,遇到了一个很奇怪的问题,在某些盒子上,从平台打开某些游戏,玩上几分钟,然后该退出游戏,回到公司的游戏平台后,便出现了页面数据丢失的问题。
排查了几天(在这不得不吐槽电信的官僚主义,好话说尽,给予各种承诺,依然不提供可以进行adb调试的测试盒子)。最终发现是由于盒子内存太小(几年前的标准,1G内存!!!),当运行大型游戏后,盒子系统自动kill了公司的游戏平台,吐血啊。
该问题如下图所示:

阅读更多

那些年,我们爬过的坑--Andriud TV篇(一)


从去年开始,从事Android TV开发已经大半年了,期间遇到过各种各样的坑,最严重、最难解决的莫过于焦点问题。痛定思痛,决定把TV开发中遇到的各种坑一一分享出来,让更多的人不再爬我所爬过的坑。

列表焦点问题

在TV开发中,VerticalGridView是谷歌专门为Android TV适配的RecyclerView,VerticalGridView很好的解决了列表的焦点问题,但是如果使用不当,很容易出现item子项焦点错乱问题。

在TV开发中尽量尽可能不适用没有优化过的RecyclerView!!!!!

小坑—–item焦点无法获取问题

进入列表界面,我希望的是按上下左右按键,item将能取得焦点,实现放大效果,但是我的实际效果如图所示,按上下键,变成了列表上下滚动,而不是我希望实现的item放大。


阅读更多