Andoid
记录日常工作中的Android错误异常以及学习经验
@芥末君
安全研发专家
展开
-
Android 14 新特性代码 UUID.fromString & Matcher.matches 的细节改动(扒源码)
Android 14 已经出来好久好久了…今天其他的暂且不论,单纯的讲一下 OpenJDK 17 更新的两点变更(扒源代码)~对正则表达式的更改UUID 处理首先,正则表达式的更改:现在,为了更严格地遵循 OpenJDK 的语义,不允许无效的组引用。您可能会看到 java.util.regex.Matcher 类抛出 IllegalArgumentException 的新情况,因此请务必测试应用中使用正则表达式的情形。原创 2024-01-03 18:50:59 · 895 阅读 · 0 评论 -
【国密】Libcurl的Android库编译流程及使用详解
本文旨在提供一个Android libcurl 国密库的编译流程和使用详解国密算法(SM2/SM3/SM4)是中国国家密码管理局颁布的密码算法标准,用于安全通信、数字签名等领域,本文将使用libcurl库,因为它是一个广泛使用的,支持多种协议的网络传输库,所以需要将libcurl库与国密算法结合使用以实现国密通信~若还有问题随时评论联系我~原创 2023-05-08 17:45:28 · 1678 阅读 · 2 评论 -
《第一个独立开发项目的完结》
关于项目开发过程中的一些认知自我检讨及完善 基于外包公司开发的考虑 代码整体质量的理解交接工作所要准备的资料用户基数忽然增多问题自我检讨及完善 首先,对自己的工作态度进行检讨, 总以为着“可以先放到后面再写”,”这功能很大众了不用再沟通了,就这么做吧”,其次就是自己的不细心, 导致android项目后期的bug繁多, 最后就是部分手机的兼容性不过关,以后写完一个功能就立马原创 2016-12-19 15:13:09 · 529 阅读 · 0 评论 -
Android Matrix Riot (IM)SDK 集成专栏(登录注册)
Matrix Riot 介绍我的理解是一个类似 Email 分布式的开源聊天工具:https://matrix.org/ ,可以用免费服务、线上付费服务(可以绑定私有域名),也可以自己在家搭建。跟 XMPP 类似,不过 XMPP 不争气,真正好用的客户端很少,而且除文字图片之外的高级功能相互兼容不好。matrix 目前基于 json + HTTP (RESTful),支持 群组端到端加密。自建服务器也很简单。android, ios 和 浏览器 都用叫做 riot 的软件(也存在其他客户端)。线上试原创 2020-07-02 10:54:44 · 1453 阅读 · 0 评论 -
使用Github共享代码及Git版本控制工具的使用
首先感谢 小晴天 对我的帮助,没有她我是不可能这么快就学会的。然后你要有一个github账号,这一点不再追述了,然后登陆进入主页时,创建仓库 : 点击之后会跳转到这样一个界面 点击创建完成之后,这个时候就需要我们的git表演了。首先去下载一个git版本控制工具 ,然后无脑下一步(至少博主是这样做的),然后有两种模式,一种是仓库中没有代码的情况,另一种是有代码的情况下。仓库中有代码的情况 首先进入d原创 2017-02-10 17:55:44 · 895 阅读 · 0 评论 -
Git切换及创建分支-精华
首先, 吐槽一些坑爹的博主, 在别人哪里赋值黏贴过来就是你自己的了? 完全不考虑自己的脸放在哪, 真是恶心!其次,下面说一下我遇到的坑, 我的项目之前就是 git clone 下来的,所以我原以为可以直接使用的, 但是后来使用查看分支的命令并不生效, 一怒之下,把git文件删除了,重新开始。。git init git add .git commit -m "你的描述信息"// 由于是...原创 2019-03-01 15:49:55 · 582 阅读 · 0 评论 -
【Kotiln】 错误锦集- Caused by: kotlin.NotImplementedError: An operation is not implemented: not implemen
正如标题所言, 我们在当继承一个抽象类or接口时,需要去实现它的一些方法, 正如以下所示override fun hideLoading() { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. if(!prog...原创 2018-06-05 14:47:31 · 721 阅读 · 0 评论 -
关于小米6 执行安装时,提示安装失败(BAIDU_LOCATION_SERVICE)
定位SDKv3.1版本之后,以下权限已不需要,请取消声明,否则将由于Android 5.0多帐户系统加强权限管理而导致应用安装失败。 如上所述,具体原因请转此:http://blog.csdn.net/gjy211/article/details/51619422原创 2018-01-24 22:06:04 · 2430 阅读 · 0 评论 -
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImporta..
此类问题主要是由于,内部类没有实现序列化接口而产生的,哈哈是不是一语惊醒梦中人呢? 一开始是空指针,我以为是什么幺蛾子呢,不就是个空指针,凭着拿空指针不当回事的心就去解决了,慢慢才发现,我值都打印出来了,你跟我说是空!!! 后来求助多位大神才解决的,多谢!原创 2016-07-18 17:50:43 · 2373 阅读 · 0 评论 -
论 java.net.SocketException: sendto failed: EPIPE (Broken pipe) 的解决办法
这里只是针对我昨天遇到的问题(上传文件过大,导致出现Socket异常)的解决办法。众所周知,tomcat是有默认的文件传输大小限制的(跟android前端),后来跟服务器的哥们协调了一下,他那边改成多少都不管用,这是其一。 其二是后来查google得知,tomcat设置服务器的超时时间,后来还是一样,设置成多少都不管用。经过查阅得知, 有人说跟流通道有关,大体的意思是说“服务器的通道以及关闭了,但是原创 2016-10-09 08:47:18 · 15778 阅读 · 4 评论 -
关于图片以流的形式上传报错EPIPE的一些理解。
之前写的时候遭遇到了很多问题, 但是总归是解决了, 图片以流的形式去上传的话, 记住本地获取图片的时候,不要把流关闭,如果只是获取一次的话那就没关系,如果是获取多次的话,就不要把流关闭。原创 2016-11-21 09:06:54 · 577 阅读 · 0 评论 -
Android error - Error:com.android.builder.internal.aapt.AaptException: Failed to crunch
有时候在网上下载或者从别的地方导进来的项目会报这个错误 Error:com.android.builder.internal.aapt.AaptException: Failed to crunch。这个是因为在windows系统中AndroidStudio的文件路径不能超过240字节,否则就会报此错误。(比如C:\Users\Administrator\Downloads\AndroidChro转载 2018-01-25 21:34:54 · 317 阅读 · 0 评论 -
解决 java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer) 异常
将下面的代码复制到你的oncreate里面,记得要在获取控件之上,我也不知道这是什么意思,但是能解决问题, 如果我知道了我会在下面评论写出。if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()原创 2016-11-25 10:37:52 · 5733 阅读 · 7 评论 -
Android 打包时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded 的解决办法
序言: 一开始遇到这错的时候就懵逼了,想到内存溢出异常怎么会在打包的时候出来呢, 后来经过查阅得知,是因为如下原因: JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。一般是因为堆太小。导致异常的原因:没有足够的内存。后来各方面百度得知让修改jvm内存大小之类的, 但是并不管用. 终于,周瑜打黄盖,哦不是,是苦心人天不负, 在graldr中添加如下信息即可:android {原创 2017-05-05 20:24:30 · 4907 阅读 · 2 评论 -
Android Cause: unable to find valid certification path to requested target
Android Cause: unable to find valid certification path to requested target 问题解决办法之一嗨,大家好,提前给大家拜个早年我的问题是出在了android第三方sdk 上, 与其他问题不同, 所以多次寻找问题答案无果,就在今天早上偶然发现是因为腾讯的bugly 造成的,我注释掉之后就可以正常编译了。如下图: /* 异常上送*/// implementation 'com.tencent.bugly:crashreport原创 2021-02-01 10:19:58 · 497 阅读 · 0 评论 -
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDo
这里贴出完整的报错 :java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{430b1748 29271:com.x.x.x/u0a88} (pid=29271, uid=10088)原创 2016-11-22 09:05:19 · 5262 阅读 · 0 评论 -
解决:java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer)
在onCreate方法中添加以下代码: if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = newStrictMode.ThreadPolicy.Builder() .permitAll().build(); StrictMode.se原创 2016-11-25 10:46:00 · 2471 阅读 · 2 评论 -
高级控件RecycleView 设置Match_Parent 失效的解决办法
解决方案: 1. item使用RelativeLayout布局,并且布局中的view至少有一个layout_alignParentRight=true 2. 在adapte中的onCreateViewHolder,使用如下代码来获得View :public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)原创 2017-05-06 13:03:53 · 1031 阅读 · 0 评论 -
极光推送的简单实现方法
极光推送的简单实现方法1第一步 导入其jar包和so文件这点不再详解, 但是要注意的一点就是: 个人感觉极光的demo还是有些地方需要改进的, 不建议使用,但是里面的代码是需要我们自己拿的, 我这里主要就是拿到的服务器端发过来的消息推送,更加高级的功能请移步第二章第二步设置清单文件,要注意的是官方已经明确的说了:![- -,](http://img.blog.csdn.net/2016070原创 2016-07-04 18:02:55 · 2423 阅读 · 0 评论 -
关于Android Https方式
本文主要在 okhttp框架基础上进行操作;首先集成gradle: compile 'com.zhy:okhttputils:2.6.2' eclipse 哥们请自行百度用法。主要是的okhttp 框架, 建议没基础的哥们去看看使用方法: 读取证书并转化为流的方法//获取指定证书的流对象。 public InputStream[] getAssignInputStreams原创 2017-01-16 17:17:46 · 591 阅读 · 0 评论 -
Android NDK的初步认识(Android Studio 2.2 + CMake)
序言: 做NDK开发也有一段时间了,还记得初学的时候各种找大神、搜教程,最后在诸多大神的帮助下,成功的做出了我的第一个NDK小玩意,很感谢他们,而后慢慢的越入越深(keng),今天在群里看到了很多像我之前那样各种找问题的哥们,感受颇多,遂写下此文章,给那些新入坑的哥们一些方向。1.什么是JNI? java Native Interface (JNI) 标准是java平台的一部分,它允许Java原创 2017-02-17 18:36:28 · 920 阅读 · 4 评论 -
Andrid中 Https 与Socket的异同
Socket编程简介Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 那么,什么是sock转载 2017-02-20 17:32:05 · 431 阅读 · 0 评论 -
为自己小马虎买单——浪费了三个小时
古语有云,事出必有妖。今个上午在跟手环进行通信的时候,发送apdu命令时总是返回null,遂追本溯源,但是三个小时过去了,丝毫没有头绪,后来我发现了,是SE上电跟ATR的顺序搞反了!正确的顺序应该是:先进行SE上电!然后在进行DoATR!谨记谨记。...原创 2018-03-08 18:00:48 · 359 阅读 · 0 评论 -
Android_关于程序产生 65535 (64K)的解决办法
随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误:UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.andr原创 2017-05-05 19:20:42 · 562 阅读 · 0 评论 -
华为、魅族手机不显示Log的原因
魅族:实测 MEIZU PRO 6 :打开【设置】中的【开发者选项】,页面底部找到【性能优化】,打开【高级日志输出】,勾选【全部允许】即可:可能其他部分魅族手机中不称为【高级日志输出】,而是【禁止D及以下级别LOG的输出】,道理一样,设为不可用即可。华为手机设置方式较为特殊,不是在【开发者选项】中,而是打开拨号界面的拨号盘,输入*#*#2846579#*#*,系统会自动打开【工程菜单】界面,依次打原创 2017-07-19 15:35:49 · 4324 阅读 · 6 评论 -
关于 ThreadedRenderer.finalize() timed out after 10 s 报错的处理
全部报错日志 :E/AndroidRuntime: FATAL EXCEPTION: FinalizerWatchdogDaemon Process: com.cn.sixuekeji.xinyongfu, PID: 11054原创 2017-05-13 22:02:37 · 8370 阅读 · 3 评论 -
Android X库 BiometricPrompt 中 Crypto primitive not initialized 问题研究
问题描述手机更换指纹时后,之前配合使用的密钥Cipher失效,爆出 Key permanently invalidated (该密钥已被永久无效)错误然后返回给BiometricPrompt 使用时报错: Caused by: java.lang.IllegalStateException: Crypto primitive not initialized解决办法对已经报错的密钥,进行删除操作: _keystore.deleteEntry(KEY_NAME);而后重新获取新的密钥原创 2020-06-03 15:29:41 · 1161 阅读 · 0 评论 -
Android7.0 &9.0在进行APP内部自动更新时遇到的问题记录
首先,第一个问题:在Android 7.0 之后, 打开文件时报错:其次,第二个问题, 在android 9.0 上,打开intent时会闪一下, 但是打不开, 仅需要添加权限即可 <!--适应android 9.0 调用安装app--><uses-permission android:name="android.permission.REQUEST_INSTALL_P...原创 2019-05-20 13:36:32 · 3371 阅读 · 1 评论 -
Android 自定义View小结(重于理解,不作为教程)
感谢 郭神 的思路。大家都知道 SetContextView是给Activity设置布局的, 但是内部还是用的LayoutInflater去实现的,关于LayoutInFlater的实例有两种方法获取得到。 通过传入Contxt对象生成 LayoutInflater layoutInflater = LayoutInflater.from(context); 第二种就是通过系统原创 2017-02-23 16:53:06 · 657 阅读 · 0 评论 -
【Kotlin】基础学习记录
var 指定一个变量 ,这个变量在初次指定之后就已经根据赋予的值确定了var的类型, 如果修改此变量为不同的变量类型则报错。var 智能类型推断(相当于自动变量 int 不能设置long)var 智能数据类型推断是根据 =号后面的类型去推断的,而使用显式则可以。var a //报错 var a:int //正常显式数据类型 在变量名后跟 :变量类型 可以为变量指定变量...原创 2018-09-04 15:20:11 · 312 阅读 · 0 评论 -
【胖虎的逆向之路】Android 7.0 上Magisk配合Xposed的相关问题
基础环境1.Android 7.1.0(硬件小米6 sagit);2.Magisk V23.03.Xposed (由Magisk-模块-搜索下载)安装首先android刷机、Magisk Root此处不表,相信大家也有这个基础的能力那么,接下来就是我们Magisk中去搜索Xposed 模块, 搜索到之后,进行安装,安装完成之后需要重启,重启之后,这个时候需要一个apk来检测我们的Xposed是否已经安装成功了,那么就到了Xposed install 的安装时候, 我这边提供了一个下载地址,是X原创 2022-03-09 13:42:58 · 5551 阅读 · 2 评论 -
java中带符号十六进制转换成十进制详解
java中带符号十六进制转换成十进制详解代码如下代码如下必须拿ffff进行测试,否则测不出异同 public void test1(){ String strHex="ffff"; int ia = Integer.parseInt(strHex,16); //不带符号十六进制转换十进制 Syst...原创 2019-12-23 14:22:33 · 3824 阅读 · 2 评论 -
论 Failed to read zip file 'D:\\app\build\intermediates\transfor\proguard\debug\jars\2\1f\main.jar解决
如下是原文报错信息, Error:Execution failed for task ':app:packageDebug'. java.io.IOException: Failed to read zip file 'D:\MyAndroidProject\app\build\intermediates\transforms\proguard\debug\jars\3\1f\main.jar'.原创 2017-09-19 11:28:26 · 2656 阅读 · 2 评论 -
android 底部按钮图片突出显示,只要一个属性即可搞定!!
使用 clipchild属性即可。 如下图原创 2016-11-08 13:58:56 · 3640 阅读 · 2 评论 -
Android Buletooth Indicate &Notify 模式共存的一个坑点。
话不多说,我在使用notify模式的时候, 出现了一个问题, 我打开notify成功了,但是write的时候返回false, 百般纠结也找不到问题所在,后来我看到一个报错信息, 是我之前增加的“高精度模式设置”,代码如下: /** * 设置高精度 * @param priority */ @RequiresApi(api = Build.VERSION_C...原创 2019-02-22 13:55:49 · 1529 阅读 · 1 评论 -
[蓝牙] Android 8.1 获取蓝牙设备地址无效;02:00:00:00:00:00
序言:对于这个问题, 谷歌是这样说的: 为了向用户提供更好的数据保护,从此版本开始,Android删除了使用Wi-Fi和蓝牙API对应用程序的设备本地硬件标识符的编程访问。链接地址:https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-hardware-idok、至此我们...原创 2019-01-02 14:52:55 · 5089 阅读 · 6 评论 -
ScrollView与百度地图的焦点争夺大战即将展开
序言: 由于产品的需求,有时候不得不在ScrollView中嵌套百度地图(BaiduMap)。但是,嵌套之后会存在一些问题,两个比较突出的问题是:1)ScrollView中事件处理与BaiduMap存在冲突。2)在BaiduMap随着ScrollView拖动的时候,存在黑影问题。很多人遇到过这两个问题,也比较棘手,所以希望百度能给出官方的解决方案。解决办法,狭路相逢勇者胜! 我们发现android转载 2017-02-25 17:09:49 · 522 阅读 · 0 评论 -
捕获崩溃异常并重启程序,上传崩溃日志到服务器
App的上线测试不可能囊括所有的错误,以及一些极端的情况可能考虑不到, 所以给App设置崩溃日志反馈是很有必要的,很多第三方都有做到,例如说腾讯的Bugly,友盟的统计等等,都可以实现到,但是如果仅仅是需要向服务器反馈崩溃日志的话,再去集成SDK就得不偿失了,因为我们可以自己去实现。系统的API中给我们提供了一个可以捕获App异常的方法:Thread.setDefaultUncaughtExcept原创 2017-02-17 17:05:38 · 1352 阅读 · 0 评论 -
hi,今天我们不讲技术!
所谓技术也, 无外乎两个字, 技,术! 好了,到此结束!原创 2016-07-06 17:51:03 · 455 阅读 · 0 评论 -
关于APP冷启动与热启动的区别及冷启动出现的白屏解决办法
首先科普一下关于APP冷热启动的区别: app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。 app热启动: 当应用已经被打开, 但是被按下返回键、Home键等按键时回到桌面或者是其他程序的时候,再重新打开该app时, 这个方式叫做热启动(后台已经存在该应用进程)。其次就是关于冷启动出现的白原创 2017-02-07 09:42:35 · 11742 阅读 · 0 评论