- 博客(17)
- 收藏
- 关注
原创 Android&databinding&binding踩坑日记
由上报错可知:是因为无法访问“androidx.viewbinding.viewbinding”,它是“androidx.databinding.ViewDataBinding”的超类型。该项目在原本是没有报错的,但是有一天打开项目就发生了报错,但是不影响编译运行。其中有试过重启Android studio,或者清除缓存,但是都是没有用的。当出现Cannot access 某某某的时候(无法访问某某某路径的时候),一般都是版本号的问题,所以要试着看下各插件版本的兼容,或者进行升级。
2023-10-09 11:17:30
1446
1
原创 Android kotlin学习之flow(一)
它的底层原理是通过监听生命周期对象的状态变化来控制协程的执行时机,从而避免了在非UI线程中执行耗时操作的问题。Flow是Kotlin协程的扩展,底层代码是基于Kotlin协程实现的,它是一种称为“异步流”的数据结构来处理数据,可以让我们像运行同步代码一样运行异步代码,使得代码更加简洁,提高了代码的可读性。(2)在 Kotlin 中,repeatOnLifecycle 函数是一个协程函数,它可以在指定的生命周期对象(如 Activity、Fragment 等)处于特定状态时重复执行一个协程。
2023-07-04 09:46:35
607
原创 Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g.
是针对Android平台的Kotlin协程扩展库,它提供了一些针对Android开发的特定功能和API,例如在主线程上运行协程、在Activity和Fragment生命周期内管理协程等。此外,该库还包含了一些Android平台上协程的优化,例如使用Android主线程的Looper来运行协程,避免了线程切换的开销。该错误的原因是在项目中缺少提供主调度程序的依赖项。是Kotlin协程的核心库,提供了协程的基本功能和API,可以在任何Kotlin平台上使用,包括JVM、Android、iOS和Web。
2023-04-03 15:45:19
955
原创 Android&kotlin错误踩坑:kotlin中错误: 找不到符号(找不到已经定义过的类)
在app级build.gradle中添加kotlin plug引入。没有添加kotlin的plug引入。然后再在程序级build.gradle中添加kotlin plug扩展依赖库。(2)但是在activity中创建一个该StudentCoroutine后,编译运行时会出现上文图片的错误。在android用kotlin开发过程中,明明已经定义过一个类了,但是在编译运行时会发生如下图片的错误。
2023-04-03 15:28:40
2039
2
原创 some kotlin libraries attached to this project were compiled can‘t read please update kotlin plugin
implementation "androidx.core:core-ktx:+"的版本号换为implementation "androidx.core:core-ktx:1.7.1" 然后sync now进行同步。在android studio 中使用kotlin编译时,出现了如标题上的问题,翻译过来大致就是:这个项目附带的一些kotlin库是用更新的kotlin编译器编译的,无法读取。然后看build.gradle(app)的kotlin扩展库的版本号和上面出现问题的详情里的版本号对应不上,将。
2022-10-20 10:45:42
3437
原创 Java&Android获取上一个月的当前日期(二月,不同月份日数不同同样适用)
获取上一个月的当前日期,如果这个月是3.30又或者是5.31怎么办呢?下面的方法可以解决这个问题。import android.util.Log;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class test { public static String TAG = "上一个月的日期.
2022-03-30 10:47:17
1368
原创 Java设计模式用孙悟空打开代理模式(附实例代码)每天一学设计模式
代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。(1)Subject(抽象主题角色):它声明了真实主题和代理主题的共同接口,这样一来在任何使用真是主题的地方都可以使用代理主题,客户端通常需要针对抽象主题角色进行编程。(2)Proxy(代理主题角色):它包含了对真实主题的引用,从而可以在任何时候操作真实主题对象;代理主题角色还可以控制对真实主题的使用,负责在需要的时候创建和删除真实主题对象,并对真实主题对象的使用加以约束。通常,在代理主题角色的客户端在调用真实=主题操作前
2022-03-03 17:46:11
5201
原创 Java设计模式模板方法模式(附实例代码)每天一学设计模式
模板方法(Template Method Pattern):定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。(1)AbstractClass(抽象类):在抽象类中定义了一些列的基本操作,这些基本操作可以是具体的,也可以是抽象的,每一个进本操作对应算法的一个步骤,在其子类中可以重定义或者实现这些步骤。同时在抽象类中实现了一个模板方法,用于定义一个算法的框架,模板方法不仅可以调用在抽象类中实现的基本方法,也可以调用在抽象类的子类实现
2022-02-25 14:52:32
654
原创 Java设计模式适配器模式(附代码实例)每天一学设计模式
结构型模式可以描述两种不同的东西-类和类的实例(即对象)。适配器模式,将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作。适配器包含以下三个角色。(1)Target(目标抽象类):目标抽象类定义客户所需的接口,可以是一个抽象类或者接口,也可以是一个具体类。在适配器中,由于Java语言不支持多重继承,它只能是接口。(2)Adapter(适配器类):它可以调用另一个接口,作为一个转换器,对Aadptee和Target进行适配。适配器Adapter是适配器模式的核
2022-02-24 16:36:44
2713
原创 java设计模式之用王者荣耀打开观察者模式(附代码实例)每天一学设计模式
import java.util.*;/**设置一个抽象目标类Subject,也就是被观察者*/public abstract class Subject{ //定义一个观察者集合用于存储所有观察者对象 protected ArrayList observers<Observer> = new ArrayList(); //注册一个方法,用于向观察者集合增加一个观察者 public void attach(Observer observer){ .
2022-02-23 14:38:00
2110
1
原创 Java设计模式策略模式(附实例代码)每天一学设计模式
策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户而变化。(1)Context(环境类):环境类是使用算法角色,它在解决某个问题(即实现某个功能)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。(2)Strategy(抽象策略类):抽象策略类所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类也可以是具体类,也可以是接口。环境类通过抽象策略类中申明的方法在运行时调
2022-02-22 15:15:54
3505
原创 Java的反射机制和配置文件
想让客户端符合开闭原则,在不修改任何客户端代码的基础上更换或者增加新的日志记录方式。在具体的工厂类实例化的工程中进行改进,在客户端代码不直接new关键字来创建工厂对象,而是通过Java反射机制结合配置文件例如xml文件来生成具体的工厂对象。主要是两个技术Java的反射机制和配置文件。Java的反射机制:指程序在运行时获取已知名称的类或已有对象的相关信息的一种机制,包括类的方法、属性、父类等信息,还包括实例的创建和实例类型的判断等。在反射中使用最多的类是class,class类的实例表示正在2运行的Jav
2022-02-15 14:56:39
461
原创 Java抽象工厂模式(附实例代码)每天一学设计模式
抽象工厂模式:提供一个创建一系列相关或者相互依赖的接口,而无需指定它们具体的类。(1)AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每一个方法对应一种产品。(2)ConcreateFactory():(3)(4)...
2022-02-14 17:02:17
3448
原创 Java设计模式工厂方法模式(附实例代码)每天一学设计模式
工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将当一个类实例化。/**抽象工厂可以是接口,也可以是抽象类或者具体类*/public interface Factory{ public Product factoryMethod();}/**具体工厂类的实现*/public class ConcreateFactory implements Factory{ public Product factoryMethod(){ return new Con
2022-02-11 16:44:36
2390
原创 Java设计模式:简单工厂模式(附实例代码)每天一学设计模式
简单工厂模式又称为静态工厂模式:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有相同的父类。虽然不属于23中设计模式其一,但是经常会被使用。/**Product抽象产品角色*/public abstract class Product{ //所有产品类的公共业务方法 public void methodSame(){ //公共方法的实现} //声明抽象业务方法 public abstract void methodDiff
2022-02-10 17:50:12
6561
2
原创 Java设计模式:单例模式(附实例代码)每天一学设计模式
单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例。public class Singleton{ private static Singleton instance = null;//静态私有成员变量 //私有构造函数 private Singleton(){ } //静态共有工厂方法,返回唯一实例 public static Singleton getInstance(){ if(instance == null)
2022-02-09 15:31:13
4928
原创 Android该软件包与具有同一名称的现有软件包存在冲突错误导致安装失败
原因:两个apk包的签名文件不一样。解决方法:如果直接用Androidstudio生成的默认的debug.keystore 却出现安装失败的问题,应该是换了电脑,或者上次是另外的同事进行了apk的打包工作。所以首先删除自己C盘下user文件下的.android文件夹下的debug.keystore文件(记得保存),然后换成之前打包apk电脑上的debug.keystore文件,重新打包就可以安装了。建议:在公司或者团队开发Android APP时,不管是Debug还是Release打包时一定要统..
2022-01-07 11:11:27
27372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅