Android
文章平均质量分 68
肖波86440
这个作者很懒,什么都没留下…
展开
-
NoClassDefFoundError: org/gradle/internal/impldep/com/google/common/collect/Lists
Caused by: java.lang.NoClassDefFoundError: org/gradle/internal/impldep/com/google/common/collect/Lists原创 2022-01-17 15:37:40 · 7299 阅读 · 2 评论 -
Android 最新(2021-06-10)编译IJKPlayer支持rtsp,延时稳定500ms
最近有需要rtsp流直播的需求,用了一些播放器发现可以打开rtsp,但是不是延时很长就是延时越来越长。也许是我没处理好。然后重新找了一下,发现很多人都在用IJKPlayer,但是没找到一个能用的,于是...原创 2021-06-18 17:40:28 · 3133 阅读 · 10 评论 -
Android Terminal ‘gradlew’不是内部或外部命令,也不是。。。的一种情况
记录一下用Android studio 中Terminal执行gradlew命令进行编译时遇到“‘gradlew’不是内部或外部命令,也不是可运行的程序或批处理文件”的一种情况。看到当前所在的目录不在此项目的目录下,将其切换过来就行了。注意:切换目录时,如果不在同一个磁盘,需要先切花盘符,在进入你的目录。具体处理方法如图:1.切换目录2.执行命令...原创 2020-07-18 11:13:18 · 1195 阅读 · 0 评论 -
Android jetpack Room数据库(三)复杂数据存取
注:基本使用可结合Android jetpack Room数据库(一)基本使用去看1.对象包含单个对象1.1.直接用@Embedded作用:将里面对象的属性当成列嵌入到外层对象生成的表中注意:两个对象中如果存在相同的名称,需要用@ColumnInfo注解重新定义列名或者用@Embedded(prefix = "department")增加前缀,保证列名不重复。否则会报错:错误: Multiple fields have the same columnName: id. Fie..原创 2020-06-18 19:16:53 · 2035 阅读 · 0 评论 -
Android jetpack Room数据库(二)版本升级/迁移
前面演示两位room数据库的基本使用,今天来看一下数据库的升级/迁移。本文将以新增表和新增列为例来讲解。这里用到一个数据库调试工具Stetho,大家可以去看看用法:https://github.com/facebook/stetho1.新加一个数据表1.1.这样定义未指定主键不能为null,会报错如下:错误: You must annotate primary keys with @NonNull. "id" is nullable. SQLite considers this a bug原创 2020-06-08 19:28:08 · 6732 阅读 · 2 评论 -
Android jetpack Room数据库(一)基本使用
1.gradle添加引用 def room_version = "2.2.5"implementation "androidx.room:room-runtime:$room_version"annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor2.配置编译器选项android { ... d..原创 2020-06-06 16:17:26 · 1625 阅读 · 0 评论 -
Android 环境报错ERROR: JAVA_HOME is set to an invalid directory: C:\xxx;
最近公司换了新电脑,终于将以前的i5 2代8G内存换成i5 9代16G内存加500G固态了,系统也由之前的win7换成了win10,开机7秒杠杠地,装完系统装完环境打开项目,perfect!没问题。问题发现:然后clean一下,点开Terminal,输入 gradlew clean, 重重的按了enter,开心的等待clean成功。然而事情似乎没那么顺利,报错了。。。ERROR: ...原创 2020-04-15 10:43:44 · 6228 阅读 · 3 评论 -
Android ScrollView中包含EditText时ScrollView中控件改变会自动跳到焦点EditText处
最近在开发中遇到在ScrollView包含EditText输入框时ScrollView数据变化引起的ScrollView自动滑动到焦点EditText出的问题,解决方法如下: sv= (ScrollView) findViewById(R.id.sv); sv.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCE...原创 2020-04-09 14:08:45 · 1183 阅读 · 0 评论 -
Android 观察者模式,这么讲你还不理解吗
观察者模式:顾名思义,就是众多观察者(observers)对被观察者(observable)的状态、行为等进行监听, 当被观察者(observable)的状态、行为等发生改变后,向观察者(observers)发出通知,告知观察者(observers), 观察者可以对这些通知进行处理或者不处理。举个例子:比如在上课的时候,老师可以看成一个被观察...原创 2020-04-09 12:20:37 · 304 阅读 · 0 评论 -
Android Tablayout遇到IncompatibleClassChangeError异常
最近项目中使用Tablayout监听tab切换事件的时候遇到如下问题:java.lang.IncompatibleClassChangeError: Class 'xxx.RobotDetailActivity' does not implement interface 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedL...原创 2020-03-31 10:08:26 · 552 阅读 · 1 评论 -
Android 遇到DuplicateRelativeFileException: More than one file was found with OS independent 问题
在开发中遇到如下问题:“DuplicateRelativeFileException: More than one file was found with OS independent path 'lib/armeabi/libstlport_shared.so'”乍看一脸蒙,因为这个类库我从来没用过,估计是在我使用的类库以及开源框架中出现了相同的引用。查了下解决方案,需要在App的b...原创 2020-03-26 17:48:17 · 4606 阅读 · 0 评论 -
Android 自定义TextWatcher实现自动在输入之后加入单位
最近的开发中遇到一个需求:有很多输入内容,有些有单位,有些没有单位,需要在有单位的输入值后面加上单位,没单位的就不用管,因为有些没单位,所有UI说是专门设计一个显示单位的元素不统一,让自己想办法在输入框中加入单位就行了。于是就开干吧!思路: 1.要扩展原有的TextWatcher,在afterTextChanged中加入咱们的单位。 2.自动填充单位后要将光标定位...原创 2020-03-23 22:22:54 · 697 阅读 · 0 评论 -
Android sqlite一条sql语句批量更新数据提升效率
在Android 开发过程中遇到需要逐条输入内容然后统一保存的需求,数据很多,一条一条去更新的话效率比较低,本文讲一下用一条语句批量更新的方法。实例采用的是【casewhen】的技巧,看一下用法:UPDATE mytable SET myfield = CASE id WHEN 1 THEN 'value' WHEN 2 THEN 'value...原创 2019-08-24 16:31:17 · 3447 阅读 · 0 评论 -
Android 反射的使用-通用各种数据类型的下拉选框PopupWindow
今天我们要用到的反射的知识是:根据属性名称获取属性对应的值。如果觉得需要的话可以直接拿去用,github地址:https://github.com/shouPol/MyDemo做了两种数据类型的效果图:通用数据类型的下拉选框PopupWindow的实现思路: 在adapter绑定数据的时候,通过反射获取到我们想显示的字段的值显示出来。直接看一下代码(代码中有注释,...原创 2019-06-06 17:31:43 · 438 阅读 · 0 评论 -
Android APP升级(兼容Android7.0报错,Android8.0不能自动安装)
之前有写过利用腾讯Bugly实现APP的热更新以及版本升级Android 热更新框架Bugly-9步完成热更新/自动更新/异常上报分析,今天来讲一下不借助第三方的应用升级。演示效果:原理:1.将新版本上传到自己的服务器,有服务器将最新版本信息记录2.当用户打开app或者手动触发版本检查时向服务器请求版本信息以及最新版本apk的下载地址3.判断当前版本是不是最新版本,如果不是...原创 2019-04-17 00:02:43 · 1223 阅读 · 0 评论 -
Android 自定义view画带指针带动画的上半圆弧刻度盘
之前工作中有用到环形进度条等的,为了赶进度都是在网上找到相似的效果的然后再进行修改。一直都想自己画一个,今天就和大家一起来学习刻度盘的绘制。先看一下截图:效果演示请看刻度盘演示代码下载:CalibrationView.zip在文章后面也会贴出全部代码实现思路主要有:1.确定中心点坐标2.画出背景圆弧以及刻度点3.画出实际进度值及刻度点4.画指针5.增......原创 2019-01-05 01:20:41 · 4332 阅读 · 8 评论 -
Android 属性动画实现购物车添加商品动画(以贝塞尔曲线路径飘入)
很久以前看到过有个app的加入购物车效果是有点像树叶飘落的效果一样,现在我自己也来实现一下,先看效果: 实现思路:以列表中的购物车的坐标为起点,以页尾的购物车为终点,通过创建view实现view从起点到终点间的动画达到相应的效果。主要技术点:1.获取view的坐标位置:iv_car.getLocationInWindow(carPosition);//获取购物车的位置...原创 2019-01-15 17:25:43 · 1339 阅读 · 0 评论 -
Android中单例模式的几种实现方式
做Android开发的程序猿,应该大多数第一个比较熟悉的设计模式都是单例模式吧。今天我们就来一起再学习一下单例模式的各种实现。单例模式的特点:对外只提供唯一的一个实例对象单例模式的实现思路如下:1.私有化构造方法(不对外开放)2.对外提供一个获取本类实例的静态方法3.确保一个类只有一个实例对象单例模式的常见实现方式有如下几种:1.饿汉模式,(不管吃不吃得下,先把碗装满)...原创 2019-01-22 17:37:37 · 3556 阅读 · 3 评论 -
Android 百度地图开发(一)
现在的各种产品中都会用到地图、定位,今天我们一起来看看百度地图的集成。现在的文档都写的很详细了,按照文档集成就可以了。下面一起来实现一下。按照文档创建应用申请key,地址:http://lbsyun.baidu.com/apiconsole/key/create 关于如何获得sha1可看官网上有介绍或者后面链接https://blog.csdn.net/u012962759/art...原创 2019-02-27 23:12:17 · 1482 阅读 · 0 评论 -
Android 百度地图开发(二)
前面我们一起了解了百度地图的申请与集成Android 百度地图开发(一),今天我们接着来学习百度地图。今天主要来了解如下问题:1.百度地图的生命周期控制上一篇张我们已经在布局文件里增加了mapView对象,现在我们通过findViewById拿到mapView对象,可以控制mapView的生命周期,然后又可以通过mapView的getmap方法获取到BaiduMap对象,可以对地图进行...原创 2019-02-28 22:34:23 · 709 阅读 · 0 评论 -
Android 正式版与测试版签名(MD5,SHA1,SHA256)以及忘记keystore的应用正式版签名获取
Android中获取应用的签名我们可以借助java中的keytool工具进行获取,keytool工具命令参考:Keytool命令详解具体如下,一、正式版与测试版签名获取。方式1:通过Android studio获取1.进入到terminal2.进入到.android 目录,一般在user/Administrator/(或者你自己的用户名)下3.用keytool工...原创 2019-02-21 11:49:54 · 2040 阅读 · 1 评论 -
Android 热更新框架Bugly-9步完成热更新/自动更新/异常上报分析
这两天看了一下Android的热修复框架--bugly,亲自按照官网步骤实现了一下,感觉挺好的,除了部分机型会有点问题。官网地址:https://bugly.qq.com/v2/index下面是小米note3 Android8.1更新tinker版本后自动合成的图片下面来看一下bugly能做什么?1.异常上报统计,无需在引入其他的异常分析工具,可自动捕获上传异常日志,包括崩溃分...原创 2019-02-26 20:21:20 · 1231 阅读 · 0 评论 -
Android 干货,外部启动activity,跳转到系统设置的action常量
声明:文章转载自Android 外部启动activity,自定义action,action常量大全从任意app,启动另外一个app的activity:1.Intent i = new Intent(); ComponentName cn = new ComponentName("com.book.android2", "com.book.android2.An...转载 2019-03-08 17:58:27 · 1708 阅读 · 0 评论 -
Android 百度地图开发(三)
上节我们一起实现了百度地图定位,overlays画点,画线等。今天一起来实现一下再地图上画弧线,画圆,画多边形,画文字以及信息窗和Android8.0以上对后台定位服务的限制以及处理方法(notification前台通知)。1.画弧线,用到百度地图api的ArcOptions,设置起点,中间点,终点,弧线宽度,颜色等属性进行绘制 /** * 地图marker画弧线,用Arc...原创 2019-03-12 17:40:42 · 743 阅读 · 0 评论 -
Android jcenter bad gateway 502(Unable to load Maven meta-data from https://jcenter.bintray.com)
今天在Android studio运行项目的时候报了如下错误,项目都编译不过了,顿时慌。。。这里附上gradle额下载地址(gradle)Error:Could not resolve all files for configuration ':app:debugCompileClasspath'.> Could not resolve com.tencent.bugly:nati...原创 2019-03-21 18:34:43 · 14306 阅读 · 4 评论 -
ZipException: duplicate entry与DuplicateFileException: Duplicate files copied in APK
最近在项目添加依赖中遇到以下两个异常,这里记录一下:1.Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplic...原创 2019-03-27 18:31:32 · 757 阅读 · 0 评论 -
Android viewpager+fragment实现无限滚动,左右有前/后一页的部分,并fragment显示的内容是activity传过去的数据
背景:最近在做app的时候碰到一个这样的需求。1,将从网络上获取的json数组数据显示出来,每页显示一个数据源,并且可以左右翻页查看;2,中间显示一个完整页,两边分别还有上下一页的一点,;3,可无限循环滑动。大致效果如下:思考:这样的效果一下就想到用viewpager+fragment来做。本案例所有代码都有贴出来,有需要的可以自己试试看! 1,activity向f...原创 2018-07-19 01:27:15 · 7995 阅读 · 0 评论