自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(374)
  • 资源 (20)
  • 收藏
  • 关注

原创 charles - Map Local功能(请求重定向到本地文件)

大概的说,此功能就是在发送api的时候,返回固定的自己可随便定制的response,为了返回api的固定数据,方便开发或者解bug。先save response到本地,会生出1个文件,里面可以随意的保存response的内容,然后让Charles收到request后,执行本地既定的response,很方便的api测试手段。 以修改这个fuel_history的API为例,初始发过来的数据都是0: 1. 先执行【save response】,这步操作之后会在本地生成1个文件,调试或者测试代码的时候,将

2022-12-06 14:45:58 1970 1

原创 Unable to load class ‘javax.xml.bind.JAXBException‘.

【代码】Unable to load class 'javax.xml.bind.JAXBException'.

2022-10-18 15:48:07 1094

原创 Service fetch error: PERMISSION_DENIED: Firebase In-App Messaging API has not been used

点击蓝色url,启用即可。

2022-09-20 11:38:40 347

原创 Android: Rxjava2多线程导致的OOM

当下游观察者使用Schedulers.io(),并且中执行的异步任务过多(比如往100份文件中写入),因为IO scheduler是一个无上限线程池,如果短时间并发量过大,上述情况就是开了100个线程里去执行操作,在手机端大概率可能出现OOM。 解决方案是另设固定大小线程池 ,参考:RxJava自带线程池监控和管理的探索之旅 - 掘金 ,线程池的线程总数设一个比较少的上限(比如2),避免开辟大量的线程。如果待执行任务超出总数就需要在队列中等待了。1. 声明线程池:2. 下游观察者使用线

2022-07-13 15:57:35 833

原创 Android: viewHolder 复用错乱导致的显示错误

情况是: recyclerview item里有个自定义View组件GraphView,负责显示速度曲线,假设有10条item,在切换一下底部bottombar再切换回来,发现第一条item的曲线变了,变成了第3个数据源的速度曲线。同样的操作再切一遍,发现曲线又变了,在适配正确的第一条数据源的情况下,却显示成了其他数据的速度曲线。 根本原因是: recyclerView item的布局经过动态 inflate 加载,因为复用的ViewHolder的View组件保留了之前的状态,并且重新调用OnBind

2022-07-12 15:25:17 1568

原创 Android: PopWindow背景显示系统提供的阴影

setElevation无效的可能原因是代码中未设置背景,在代码中设一下即可(颜色和布局背景色相同)

2022-07-11 10:36:18 1691

原创 Android - PurchaseUpdateListener多次触发的应对策略

在billing4.0库版本上发生PurchaseUpdateListener的回调执行多次的bug,用户只点击了billing内购画面上面的购买按钮一次,但是购买成功的回调进入了多次,网上搜了一下没有特别好用的规避方法和解决方案,故自己写了一个。 核心想法是在极短的时间内过滤掉其他多余的次数,只执行一次进入回调后接下来的触发逻辑(下面的adaptCoupon()就是购买成功后要调用的函数,除了首次意外事件,1.5s内只执行一次),因为如果付费成功,billing回调里的订单一定是唯一的,就像控

2022-07-07 16:14:08 544 1

原创 java - 等待子线程执行结束再继续执行

用CountDownLatch, 在主线程里用 latch.await() 挂起主线程,等待子线程执行完毕再继续执行

2022-07-07 15:50:03 565

原创 Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unkno

手动cd 到项目的gradlew根路径,然后再敲这个命令即可:

2022-06-09 16:46:17 2897

原创 Android:Room动态拼写原生sql语句

如果不用Room提供的注解方式去查询sql,根据需求要写冗长复杂的查询语句(比如查询的条件数量不是固定的,语句不定长),注解的方式去写实现不了需求,那么就要用Room动态拼写原生sql语句去查询:使用SimpleSQLiteQuery,将原生的sql字符串传进去就行: /** * home_条件検索 * @return 検索結果 */ public Single<List<RidingLogRoomEntity>> searchCon

2022-04-18 09:59:41 2124

原创 RxFFmpeg: Android Error while decoding stream #0:0: Invalid data found when processing input

使用RxFFmpeg将图片+mp3转换成mp4的时候,报此错误,后来把图片文件由jpg改成png的后缀,就好使了

2022-02-08 15:43:14 3306

原创 Android:Environment.getExternalStorageDirectory 废弃

使用Android SDK 版本超过29编译会发现这个方法被废弃了,解决方案是:context.getExternalFilesDir()-----------比如要把图片保存到手机的指定文件夹下后,扫描更新媒体库,在相册中显示,存储路径的旧写法: //app调用系统相机拍照得到的照片存储的路径: /storage/emulated/0/Pictures/demox_camera private val outputPhotoDirectory: String by lazy

2022-02-08 10:57:59 3772

原创 Android:关于GooglePlay支付的许可测试

官方的叙述:https://developer.android.com/google/play/billing/test一言以蔽之,开发的时候如果想不绑定银行卡,不产生真实交易过程就测试支付功能,就需要依靠许可测试。在官方叙述的基础上,更为详尽简略的记录一些重要的细节。1. 首先要去控制台用户级别的目录,找【设置】-【许可测试】,将测试购买的谷歌账号添加,确保【许可测试人员】上有要添加的目标账号,这才算设置好了。2. 到应用中找【测试】-【内部测试】,上传一个内部测试的apk发布个新

2022-01-07 17:30:03 5939 5

原创 Android: ViewPager+Fragment嵌套的优化

参考如下博客做一个总结:Android开发-ViewPager嵌套Fragment卡顿解决Viewpager滑动重复加载Fragment延迟加载_Mango先生的博客-CSDN博客_android viewpager滑动卡顿首先要明确的是两个基本概念:getFragmentManager()所得到的是所在fragment 的父容器的管理器。getChildFragmentManager()所得到的是在fragment里面子容器的管理器。getFragmentManager..

2021-12-17 11:52:08 801

原创 Android:Android12启动页(Splash)适配

官方文档:启动画面 | Android 开发者 | Android Developers用法,在自定义Splash画面的最初的周期函数(如onCreate)里调用下述方法: private fun extendFlash12Display() { val content: View = findViewById(R.id.root) content.viewTreeObserver.addOnPreDrawListener( ...

2021-11-23 09:48:52 3138

原创 Android: 页面元素抓取工具Weditor

在高版本mac系统电脑上,Android SDK提供的页面抓取工具uiautomatorviewer能正常打开但是无法截图,左上角的截屏按钮栏没了,故放弃uiautomatorviewer改用weditor。 mac电脑默认安装的是python2.7,版本不够支持使用weiditor,需要自己手动安装python大于3.6的版本,参考这个博客:mac电脑安装python3.7版本 - 凝心叶子 - 博客园。安装完之后,确认python版本:然后参考这个...

2021-11-22 10:01:56 3439

原创 Android:Fragment中物理返回键监听

ar dispatcher: OnBackPressedDispatcher? = nullvar callback: OnBackPressedCallback? = nulldispatcher = requireActivity().onBackPressedDispatchercallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (menuI.

2021-11-12 10:09:53 2674

原创 mac 创建加密zip

先命令定位到桌面,并把源文件夹也放到桌面,然后按下图命令敲:farm.zip 是设定的zip包名字,后面的是被压缩的文件夹路径

2021-10-19 16:21:25 412

原创 Firebase- Performance Monitoring

官方文档:​​​​​​https://firebase.google.com/docs/perf-mon/get-started-android#java性能统计的集成很简单,按照官网来就行,简单来说只需要在两个gradle文件配置即可:然后就能在控制台里看到性能统计的值了:...

2021-09-28 14:27:11 384

原创 Remote: Support for password authentication was removed on August 13, 2021. Please use a personal ac

代码推不上去的时候报这个错,解决方案是 push的时候,输入密码的地方用token:教程网址:github开发人员在七夕搞事情:remote: Support for password authentication was removed on August 13, 2021._星空-CSDN博客...

2021-09-22 11:13:30 179

原创 flutter: Dio网络库设置charles抓包

在Dio client设置如下代码: client.findProxy = (uri) { //charles设置的代理 (proxy) return "PROXY 192.168.150.61:8889"; };完整DioUtil:import 'package:dio/dio.dart';class DioUtils { /// global dio object static Dio dio; stat.

2021-09-17 11:21:30 527 1

原创 Flutter: liveData

Flutter中没有LiveData机制,但是可以利用Selector或者Consumer人为加工出一种LiveData效果的写法。假设逻辑是viewmodel执行完某段逻辑,通知页面回退到上个画面,用Cosumer来进行举例: Dart ui 画面中,使用Consumer包裹需要更新的节点。Consumer包裹要接收通知要执行的逻辑,包裹的返回值是一个不可见的布局,这里用了SizeBox:Consumer<ForgetPwdViewModel>( build...

2021-08-27 10:53:37 282 1

原创 Flutter: Firebase Facebook 认证登入

Flutter相关的官方文档:https://firebase.flutter.dev/docs/auth/socialhttps://facebook.meedu.app/#/androidhttps://developers.facebook.com/docs/facebook-login/android安卓的官方文档:(辅助集成)https://firebase.google.com/docs/auth/android/facebook-loginFlutter的官方文档代

2021-08-25 14:50:11 808

原创 Android: SERVER_ERROR: [code] 1349195 [message]: 该密钥散列不匹配任何已存储的密钥散列

集成Firebase Facebook 认证登入的时候,碰到这个问题。重点到Facebook控制台上去看密钥序列是否已经正确填写,没填或者填错了就会这样。进入这个网址:https://developers.facebook.com/docs/facebook-login/android,找到第6步在终端Terminal照着命令生成。在第1步选中要设置的项目,将上面的字符串结果设置好,保存。...

2021-08-25 14:05:34 1489

原创 SourceTree: 您的仓库未正确配置

出现这个对话框不一定就是故障,测试一下:在master分支上新建一个分支,改动下readme的文字(对项目中的内容进行改动),commit之后看能否正常push 成功。新建分支:改动内容( readme 添加改动):push后发现新建分支成功推上去了。SourceTree账户列表的4个账号,都不是项目gitlab网站对应的账号,即使不在SourceTree列表中增加目标Gitlab网站的账号,也能够推拉代码...

2021-08-24 11:36:48 415

原创 Android -Webview内存泄漏

解决方案:onDestory中加入如下代码,wvTerm是webview的id: if (dataBinding?.wvTerm != null) { val parent = dataBinding?.wvTerm?.parent (parent as? ViewGroup)?.removeView(dataBinding?.wvTerm) dataBinding?.wvTerm?.apply {

2021-07-27 11:31:44 352

原创 Google Play 支付集成

官方文档:https://developer.android.com/google/play/billing代码按照官网集成就可以,很清楚,下面主要记录控制台的配置。1.先商品 -> 应用内商品,先上传APK后再添加商品:2. 创建商品:3. 启用,看到【有效】的字眼说明设置商品成功4. Google Play控制台app通过审核后, 集成代码通过querySkuDetailsAsync()方法,测试发现成功取到商品的信息:...

2021-07-01 15:17:21 618

原创 Android: Retrofit - End of input at line 1 column 1 path

使用Retrofit ,当服务器返回的response是空的,什么都没返,ResponseModel数据格式与后台服务器返回的数据格式不匹配,就会报这个错误。在这找到了解决方案:https://stackoverflow.com/questions/35744795/retrofit2-error-java-io-eofexception-end-of-input-at-line-1-column-1代码中改为: @POST(ApiConfig.PATH_POST_DEV...

2021-06-24 14:03:41 1621

原创 Android FCM:测试工具(PostMan)

用PostMan工具发送消息进行测试的步骤:1: Post:https://fcm.googleapis.com/fcm/send2: header加上两个,其中第二个Authorization的形式是key = FCM项目控制台中的服务器密钥:3: 测试Json , to 填写的是FCM Token:{ "to":"fcsWFpbtTaKOQW7qUjdIuU:APA91bHO6_y6NiZfNL8-bex8ItvFbHd3zrbsoUI...

2021-05-24 16:23:11 1836 2

原创 Android: Amazon SNS Notification 通知 使用记录

官方文档:https://docs.aws.amazon.com/zh_cn/sns/latest/dg/sns-mobile-application-as-subscriber.html一份介绍术语的教程:https://www.unitrust.co.jp/6182Amazon Simple Notification Service (Amazon SNS) 是一项托管服务,可从发布者向订阅者 (也称为创建者和使用者) 提供消息传送。谷歌翻译教程中的图片流程: 启动应用程序时允许推

2021-05-21 15:27:21 704

原创 Android: uri转File路径(filePath)

fun getFilePathFromUri(uri: Uri, context: Context): String? { val returnCursor = context.contentResolver.query(uri, null, null, null, null) /* * Get the column indexes of the data in the Cursor, * * move to the first row i...

2021-04-26 16:23:41 953

原创 Android: ScrollView嵌套ExpandableListView,ScrollView无法滚动的冲突

解决方案就是写个子类,重写onMeasure方法即可:自定义ExpandableListView的子类:package jp.oikura.app.widgetimport android.content.Contextimport android.util.AttributeSetimport android.widget.ExpandableListViewinternal class CustomNestedExpandableListView : ExpandableL..

2021-04-12 11:49:16 573

原创 Android:WebView的loadData( )加载html空白

情景是:SdkVersion是28的时候WebView一切正常显示,升级SdkVersion到30的时候,WebVIew用loadData加载html就显示一片了。这时候在如果在onPageFinished里看值,onPageFinished的回调中看url的值:data:text/html; charset=utf-8,<html>%0A<head>%0A<meta charset="utf-8">%0A<meta name="format-detecti

2021-03-19 11:30:38 1106

原创 Android: onActivityResult resultCode为0,Intent为null

主流的网上解决方案都是跟Activity的启动模式不是singleTop和Standard有关,但是在Standard模式下还是碰到了这个问题,经过调试发现问题出在: @Override public void onBackPressed() { setCloseResult(); finish(); super.onBackPressed(); } private void setCloseResult(){

2021-03-11 17:23:21 689

转载 No cached version of com.facebook.android:facebook-android-sdk:8.1.0 available for offline mode

解决方案:https://www.cnblogs.com/flay/p/12641381.html图片是灵魂:

2021-03-09 15:40:39 510

原创 Android:E/IdpSignInActivity: Web sign-in failed, finishing

Twitter登陆碰到这个错误,光从错误日志只有一句,看不出什么:调到Verbose,这个错就好定位了,是sha1指纹不匹配:

2021-03-05 17:07:27 239

原创 Firebase - Crashlytics 集成心得

官方文档:https://firebase.google.com/docs/crashlytics/get-started?authuser=2&platform=Android此篇博客作成的时候,官方文档是有bug的,勾选了Android版本的教程,但是显示的依然是IOS的。梳理了一下实际需要做的,流程如下:网页控制上启用功能:开启完之后发现是这个样子的,一直在转圈:接着是代码部分,代码部分集成很简单,只需要在2个build.gradle中配置就可以了:Pr..

2021-03-05 16:18:26 1068

原创 Android 讯飞语音识别 —— (WebAPI开启动态修正识别)

官方文档:https://www.xfyun.cn/doc/asr/voicedictation/API.html#%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8%E6%B5%81%E7%A8%8B 讯飞WebAPI语音听写流式接口,用于1分钟内的即时语音转文字技术,支持实时返回识别结果,达到一边上传音频一边获得识别文本的效果。开启动态修正的好处是能提高识别效果的准确度。 官方网站控制台在线测试的URL:https://www.xfyun.cn/servic...

2021-03-04 11:15:00 1219

原创 Firebase Auth 获取token secret

官方文档:https://firebase.google.com/docs/auth/android/twitter-login官方文档这段描述过于模糊,直接getAccessToken(), getSecret(),是点(.)不出来的,需要把AuthResult的AuthCredential对象强转成OAuthCredential, 然后再取得: /** * Firebase Twiter 认证 * * @param context ...

2021-02-18 16:51:27 987

原创 [GetAuthDomainTask] Error getting project config. Failed with { XXX “message“: “INVALID_CERT_HASH

完整日志如下:2021-02-10 14:39:25.954 28918-30756/jp.or.eiken.studygear E/FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with { "error": { "code": 400, "message": "INVALID_CERT_HASH", "errors": [

2021-02-10 16:12:51 493

FCMTestDemo.zip

FCM Demo

2021-02-19

Android-Notification(兼容8.0+以及8.0以下).zip

Android Notification(兼容8.0+以及8.0以下),博客:https://blog.csdn.net/Crystal_xing/article/details/103159161

2019-11-20

Android批量申请权限.zip

Android 批量申请权限,博客:https://blog.csdn.net/Crystal_xing/article/details/102914219

2019-11-05

Android-FCM云消息集成Demo.zip

Android FCM集成Demo,博客:https://blog.csdn.net/Crystal_xing/article/details/102859561

2019-11-01

Android软键盘返回键监听.zip

支持包括谷歌系列手机(nexus,pix。。。 )软键盘返回键的监听,博客:https://blog.csdn.net/Crystal_xing/article/details/102680648

2019-10-22

Android 可拖拽移动的RecyclerView

博客:https://blog.csdn.net/Crystal_xing/article/details/93722904,Android 可拖拽移动的RecyclerView列表

2019-06-26

Android 伸缩布局

博文:https://blog.csdn.net/Crystal_xing/article/details/93498280,Android伸缩(展开/关闭)效果布局

2019-06-24

PictureSelector集成Demo

图像选择+拍照的Demo,PictureSelector原版框架的地址:Github地址:https://github.com/LuckSiege/PictureSelector

2019-02-20

Android 录屏Demo

博文:https://blog.csdn.net/Crystal_xing/article/details/85987199,Android 录屏

2019-01-07

Android 拍照和相册选取+图片压缩功能

博文:https://blog.csdn.net/Crystal_xing/article/details/85618160,Android 拍照和相册选取+图片压缩功能

2019-01-02

Android 蓝牙搜索连接周围设备

博文:https://blog.csdn.net/Crystal_xing/article/details/85264819

2018-12-26

Android 自定义侧边栏列表

博文:https://blog.csdn.net/Crystal_xing/article/details/85230567,自定义Android 侧边栏列表的封装

2018-12-24

Android 悬浮Activity ( Dialog风格)

博文 https://blog.csdn.net/Crystal_xing/article/details/85123009

2018-12-20

Android 底部导航栏凸出点击

博文:https://blog.csdn.net/Crystal_xing/article/details/85101594,导航栏凸出按钮的点击

2018-12-20

Android 获取手机摄像头视频数据

获取Android手机摄像头的视频数据,像打开了相机的效果一样

2018-12-19

Android 离线语音识别技术PocketSphinx的Demo

博文:https://blog.csdn.net/Crystal_xing/article/details/84957466,Android离线语音识别

2018-12-11

Android百度语音——文字转语音

百度语音的文字转语音功能Demo,将目标指定的字符串读出声音

2018-12-05

Android MVP项目搭建(MVP+Dagger2+Butterknife)

Android MVP项目的搭建Demo(MVP+Dagger2+Butterknife)

2018-11-27

实现相同效果的popWindow和Dialog封装

popWindow和Dialog封装,实现了相同的效果,背景有蒙层

2018-10-23

XRefreshView+MultiTypeAdapter的强大列表

XRefreshView+MultiTypeAdapter的组合列表,能方便的上拉刷新和下拉加载,并且在列表中可以方便的渲染不同列表项,功能强大复用性强

2018-08-23

空空如也

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

TA关注的人

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