- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 亲测解决:Error running ‘app‘: The emulator process for AVD Nexus_5X_API_33 has termina
解决Error running 'app': The emulator process for AVD Nexus_5X_API_33 has termina
2024-10-12 16:16:22
1744
原创 彻底学会Gradle插件版本和Gradle版本及对应关系
build.gradle文件里面的,gradle版本是写在gradle-wrapper.properties文件里面的。所需的gradle最低版本,详细对应关系如下表格,跟官网同步的,你说全不全。API、版本号、版本名称对应表,其实可以在Android Studio。这会你应该就明白了一个事情,就是gradle插件版本是写在。支持的最低Gradle版本为7.3.3。补充:在开发过程中我们也少不了需要知道。的Settings里面找到,如下图。API、版本号、版本名称对应表。所需的gradle最低版本。
2024-07-03 19:54:09
23548
2
原创 一招教你下载Android Studio历史版本包
gradle下载地址、Android Studio最新版本下载,Android Studio历史版本下载因为最新版本,用的人不多,出现问题时,都baidu不到解决的方案,本文不是鼓励不升级,只是不建议一下子用最新的版本
2024-05-16 22:11:33
4724
2
原创 亲测有效包教会配置build实现多渠道打包
多渠道打包、多维度、一个维度flavorDimensions、productFlavors、自定义包名 applicationVariants.all { variant -> variant.outputs.all { output -> output.outputFileName = "ll_${variant.flavorName}_${buildData()}_${variant.buildType.getName()}.apk"
2024-05-16 21:41:07
1170
原创 亲测实现PopupWindow显示FlowLayout流式布局带固定文本/按钮(位置可改)
PopupWindow显示FlowLayout流式布局带固定文本/按钮
2023-02-22 17:01:14
1908
原创 解决: Attribute meta-data#package_name@value at AndroidManifest.xml:23:13-44 requires a placeholder 错误
完整版错误信息:Merging Errors: Error: Attribute meta-data#package_name@value at AndroidManifest.xml:23:13-44 requires a placeholder substitution but no value for <package_name> is provided. app main manifest (this file), line 22 Error: Validation failed,
2020-11-20 15:57:00
9704
原创 简单粗暴包教包会的单元测试
什么是单元测试?为什么要用单元测试?会用单元测试吗?(自解)一个同事问我,明明后台都是传6,可是显示出来的就是不一样,这个问题非常严重,而且界面在项目比较深层处,还需要满足某些条件才能进去。阅读一下相关代码,发现共同使用同一个方法,单独抽出来(图中ss方法),进行单元测试,就可以排查到问题所在了。以前我对单元测试这个,不怎么上心的,现在使用某些方法时,会进行单元测试,把一些特殊数据也测一边,免得因此被怼扣绩效奖。1.单元测试操作详解图(看图不会,评论区教):...
2020-10-13 17:30:37
899
原创 实现AIQUA SDK的集成、初始化、跟踪用户的设备ID
官网:https://docs.aiqua.appier.com说明:我不太了解AIQUA是做什么的,因为某些原因接触到它,所以我这里就只讲如何集成、初始化以及我躺过的坑,具体怎么使用就不说了,我这里是新建一个项目进行的,所以没有出现什么包冲突之类的问题。为什么要写这篇呢?主要是因为,在我前面开始根据官方文档来操作时,遇到问题、最后发现需要翻墙。(可能是我的迷之操作导致这些问题的出现)整篇文章中,有哪里描述不对的地方,请指正出来,不能被我带偏了。写的步骤:先根据文档来,遇到的问题也贴一下,最
2020-08-14 11:43:32
1389
原创 亲测实现:绘制有边距的边线框
这个标题不太好取,其实就是实现:在矩形内绘制边线框(stroke),如下图:一开始拿到这个UI,相信有人跟我一样,立即想到shape、stroke,然后一顿猛虎操作:在drawable下新建stroke_bg.xml,敲出如下代码:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:sh.
2020-07-10 11:45:37
1105
原创 一步步带你实现Android图片处理库gpuimage的配置、使用、封装、多效果集于一身(eg:灰度滤镜+鱼眼效果)
官网:https://github.com/cats-oss/android-gpuimage以下以灰色滤镜、鱼眼效果、饱和度(第二排,注意看进度条,可以随进度条变化)为例,进行讲解,效果图如下:图一:刚进去的界面,没有任何操作,上图是原图,可以优化黑色,一开始隐藏,进行图片处理时再显示; 没有操作 ...
2020-06-02 15:51:15
2373
2
原创 flutter与android混合开发一:Android原生项目创建flutter模块、Android打开Flutter界面并传递数据
本篇主要讲解:如何在Android原有项目中创建flutter模块; Android原生代码打开flutter界面并传递数据,flutter显示接收到的数据(以简单的demo讲解)效果图如下: 步骤:一. Android原有项目创建flutter模块1.在项目下(eg: 项目路径是E:\project...
2020-03-31 10:40:04
2214
原创 flutter学习七:顶部导航栏TabBar切换子布局FutureBuilder、shared_preferences、ExpansionTile、RefreshIndicat
实现顶部导航栏TabBar+TabBarView切换子布局,因为也想写FutureBuilder、shared_preferences、ExpansionTile、RefreshIndicat文章,索性一起写了,顶部导航切换的四个子布局分别是:FutureBuilderPage:FutureBuilder的使用; SharedPreferencesPage:shared_preference...
2020-03-26 12:41:50
1999
原创 flutter学习六:实现http网络请求
昨晚学习了flutter实现http网络请求的get方法,后面学习到post等其它方法再补充。为了效果,我在eolinker上面建立了一个get接口,不知道这个虚拟url你们能不能使用,先看效果图: 一. get的请求1. 引入http包:2. 创建bean,就是用于接收服务器返回的模型3. 进行网络请求(...
2020-03-19 16:38:29
2226
原创 封装OKhttp3、retrofit2网络请求,打印请求、返回日志、捕获异常信息发送到钉钉
封装OKhttp+retrofit2网络请求,统一请求入口不再用注解式请求。打印日志,即为了方便开发、调试,我们需要把请求的相关信息(url、参数等打印出来)、请求返回的数据(以JSON格式返回的,整条打印出来,方便快速查找是哪里有问题,节省时间)。分为生产、测试环境,当生产环境出现非成功时,就提交信息到钉钉群(以RequestBody 发送一条json,url是群里“自定义机器人的WebHo...
2020-03-19 10:17:25
219
1
原创 flutter学习五:实现轮播图Swiper、GridView布局、点击事件,ListView组装布局
好久没有自学flutter,有点落下,现在有空就抓紧补上,如标题所示,这篇博文是实现轮播图Swiper、GridView的组合布局及各自的点击事件,最后是将它们抽出方法来,而不是全部写在build里面,不然代码看起来不舒服而且不易维护。我自己摸索了一个上午,一边调试一边查阅资料,最后实现后,整理好代码就写这篇博文了。效果图如下所示(凑齐六宫格,重点后面一排): ...
2020-03-17 15:36:27
3254
原创 亲测实现:获取日期时间各种格式的:yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日等等不需要再截取拼装了
这些功能应该挺多人都知道了,只是一开始我不懂,就走了弯路,后台传来的是yyyy-MM-dd,显示要求是,日月有一位数时前面不能加0,eg:2020-03-22要显示成2020年3月22日,当时自己用了最笨的方法用substring各种截取拼装、以及获取本地日期也是,后面偶然间得知,其实不用那么麻烦的,再次记录一下。一.yyyy-MM-dd HH:mm:ss .eg:2020-03-22 11:...
2020-03-16 09:48:07
4763
原创 亲测实现:RecycleView健康问卷布局(题目、选项动态)、逻辑(单选、多选功能、提交答案、显示上次选择的答案)
描述:健康问卷的题目、题目对应的选项都是由后台配置的,所以界面的布局是要根据数据来决定,使用了RecycleView实现二级列表的效果来动态布局问卷,效果图如下(录了视频,因为转GIF麻烦,所以就不上了):拿到这个问卷,想到的问题:标题中,(单选)、(多选)紧随标题的右边,两个控件要怎么布局? JSON数据及模型、在正常的项目中,提交数据后再次进来会显示之前的选中答案,要怎么显示...
2020-03-11 17:07:39
1415
1
原创 亲测解决:View.inflate动态添加子布局时不能填满问题
想要右图的效果,填满容器,可是实际上却是左边的效果,只需改一句代码: 1.原先我的代码效果如上左图,代码如下:(布局中使用了dataBinding) mBinding.clMeasurement.removeAllViews();// mBinding.clMeasurement是LinearLayout,用于装子布局的 view = View.i...
2020-03-09 11:18:18
1554
原创 亲测解决:自定义相机Camera2前后置拍照时相片翻转、旋转等显示问题
一开始我遇到的问题是,前置拍照获得的照片各种旋转、翻转,就是不能正常,解决后的前后置拍照得到的图片都正常了,效果图如下(看底部中间显示的相片): 自定义相机的实现,网上有很多代码了,我这里不贴全部的代码,就贴解决前后置拍照怎么处理照片使其正常(记得给相关权限),布局中用到的是TextureView控件。1.前后置时的SparseIntArray 设置(默认的是前...
2020-03-02 16:00:04
7816
7
原创 实现:获取相应的权限后自动执行之前的操作
一开始,我写的是,点击弹出需要的权限,允许后还需要再次点击才会执行我想要的操作,测试为此提出优化,应该是“权限获得后”就会继续前面的操作,而不是用户再操作一次,以此记录一下。怎么知道我们是允许、还是拒绝权限呢?这时候就需要onRequestPermissionsResult或onActivityResult方法。坑:在fragment里面获取权限,不会执行fragment里onReq...
2020-02-21 14:54:25
2224
1
原创 实现:RecycleView+CheckBox多选并提示选中什么
效果图如下:思路就是RecycleView+CheckBox,在适配器写个“点击”接口,在点击时调用传给Activity选中的position,进而可以得知选中的有哪些,其中需要注意的是:CheckBox控件的clickable要设置为false,因为点击事件是针对整个item布局的,当不设置为false时,就会出现统计不准确问题。步骤如下:1.准备item布局item_chec...
2020-02-20 15:37:27
3177
原创 解决:SwipeRefreshLayout嵌套RecyclerView时滑动冲突
情况:SwipeRefreshLayout嵌套RecyclerView,当内容超过屏幕下拉,不知道你是要下拉刷新还是下滑,一直认为你是下拉刷新。解决方法:添加如下代码:其中rvHome代表RecyclerView控件、srlHomeRecycleRefresh代表SwipeRefreshLayout控件,如用findViewById,请先findViewById后再添加下面代码。...
2020-02-18 10:31:40
2853
原创 实现:AndroidX手动改成Android项目,解决启动总是闪退
Android Studio3.5.2,新建项目都是默认AndroidX,想改成android项目,改动如下所示:一.gradle.properties(Project Properties),改成如下:android.useAndroidX=falseandroid.enableJetifier=false二.build.gradle(Module:app),改成如下:d...
2020-01-20 14:33:51
4969
1
原创 flutter学习四:使用自定义字体
对比图如下:左图是默认的,右图是自定义的(具体是什么字体我也不清楚,百度随便下载.ttf文件的) 操作步骤如下(前提有ttf文件):一.根目录下建立fonts文件夹,把ttf文件放进去,如下图所示:二.pubspec.yaml(原本是fonts:……只是注释掉了,我没有动它原来的,自己写了)...
2020-01-17 15:48:15
3268
原创 flutter学习三:实现登录界面,登录成功后跳转到首页,从我的界面退出登录
效果图依次如下: 一步一步摸索、查找资源,最后实现登录界面,登录成功后跳转到首页,从我的界面退出登录,这个过程涉及到了:Widgets的使用(TextField、RaisedButton、SizedBox、Row……)、路由、交互……等相关知识,代码有相应的注释(有些是根据自己的...
2020-01-15 18:10:04
13175
3
原创 flutter学习二:亲测实现官网构建布局第一个例子完整代码
这个例子原来的地址flutter:https://flutterchina.club/tutorials/layout/左图是盗官网的,右图是运行的。 为什么要写这个呢?因为我看着官网的介绍,一步步打代码,后面没有走通,一直没有想明白,也有挺多人在下面问完整的代码,而且给出的完整代码连接打不开。我也是刚刚接触flutter,这个例子捣鼓了半天才出来效果的,所...
2020-01-10 17:48:49
3229
1
原创 Android:倒计时、定时器、定时执行次数使用笔记
经常要用到倒计时、定时器,但总是搞不清楚,所以这里整理一下,方便后面使用 。一.倒计时(3、2、1)CountDownTimer()//一共3秒,每隔1秒执行一次CountDownTimer timer = new CountDownTimer(3000, 1000) { @Override public void onTick(lon...
2020-01-08 14:32:55
6114
原创 长话短说:十进制与其它进制的相互转换
十进制转其它进制(方法是自带的):转2进制 Integer.toBinaryString(n);转8进制 Integer.toOctalString(n); 转16进制 Integer.toHexString(n); 转 r 进制 Integer.toString((String) s, (int)r); r进制转10进制 Intege...
2020-01-07 11:08:13
1051
原创 flutter学习一:详解flutter安装配置、解决The Flutter SDK instalaion is incomplete、无法将"Unblock-File”项识别为、0x80240037
Flutter中文网:https://flutterchina.club/一开始看Flutter中文网,按照步骤来,自己脑子有些短路了、遇到了以下几个bug,在此记录一下。错误1:TheFlutterSDKinstalaionisincomplete;pleasesee:htps:/lutterio/docs/get-started/install.(安装的flutter ...
2019-12-31 10:21:55
9338
原创 亲测解决:flutter安装配置时出现无法将"Unblock-File”项识别为cndlet、 函数、脚本文…和安装升级powershell时出现0x80240037
flutter安装配置时,出现错误1:无法将"Unblock-File”项识别为cndlet、 函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。为了解决上面的bug,需要升级到powershell,出现错误2:安装程序遇到错误:0x80240037两个bug解决(我的是Windows7):一:下载PowerShell...
2019-12-31 09:41:06
4009
原创 亲测解决升级为AndroidX出现:名称冲突: BusMutableLiveData中的observe(LifecycleOwner,Observer
Android一键升级为AndroidX(可参考:https://blog.youkuaiyun.com/weixin_40420578/article/details/100132061)LiveDataBus中出现的错误:错误: 名称冲突: BusMutableLiveData中的observe(LifecycleOwner,Observer<T#1>)和LiveData中的obser...
2019-12-27 15:15:21
2855
原创 一步步带你实现极光推送、统计(含事件统计,自定义计数、计算一直没有的原因)
极光推送官网文档https://docs.jiguang.cn//jpush/guideline/intro/自定义计数、自定义计算一直没有这个坑(最后面有写原因、解决),我研究、找资料、反复对比demo、极光文档耗了大半天,但是最后问题解决了,很开心。这也是我,为什么明明官网写得很好了,还多此一举写篇文章,因为想记录自己完成的这个过程,就比如这个坑,下次无论如何我都不会再进去了,有些东西,...
2019-12-25 17:35:59
2292
原创 一步步带你实现bugly异常上报、版本检测更新(应用升级)
一.异常上报(1)在Bugly上的操作1.bugly上注册账号:https://bugly.qq.com/2.创建产品3.查看App ID、App Key(项目中需要到)4.设置WebHook(以钉钉群为例,如何创建钉钉群机器人:https://blog.youkuaiyun.com/weixin_40420578/article/details/103277359)...
2019-12-23 15:08:03
4153
原创 okhttp3+retrofit2+rxjava+MMVP以注册为例概述一个网络请求的完整流程
注:这里以注册为例概述网络请求的完整流程,是指以我的方式、流程进行的请求,不同的开发者有不同的思路和流程一.引入包(如果有哪些找不到文件的,那就是缺包了)、网络权限api com.squareup.retrofit2:adapter-rxjava:2.5.0api com.squareup.retrofit2:converter-gson:2.5.0api io.reactivex....
2019-12-19 11:42:53
669
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人