上面的Module build.gralde的配置必须写在使用注解所在的 Module 中!
然后开始google, 有个类似的问题 stackoverflow-questions-53008162, 说是 dataBinding 的问题, 说是直接注释掉,然而并没有卵用…
‘annotationProcessor’ dependencies won’t be recognized as kapt annotation processors. Please change the configuration name to ‘kapt’ for these artifacts: ‘com.airbnb:deeplinkdispatch-processor:4.1.0’. 简而言之,需要把annotationProcessor切换为kapt就可以了。 切换前: api '
错误原因 AndroidStudio在升级到3.0版本以后,将apt修改为annotationProcessor了。 解决方案 把module/build.gradle下的apt插件应用全部注释掉 apply plugin: 'com.android.application' //apply plugin: 'android-apt' 把dependencies下的apt全部改为annotationProcessor dependencies { annotationProcessor 'com.g
和尚因为种种原因需要升级 Android Gradle,Gradle > 3.0 时默认支持 Java 8;每次大版本升级都会涉及很多内容,和尚尽可能慎重,但还是简单记录一下升级过程中遇到的问题;
网上不少资源说要在Project和module下的build.gradle分别添加以下依赖,然而是错的
上一篇博客 【Android APT】编译时技术 ( ButterKnife 原理分析 ) 简单介绍了下编译时技术 , 并简单分析了 ButterKnife 的实现原理 ;
Android 依赖参考文档 : https://developer.android.google.cn/studio/build/dependencies
去往gradle安装目录(File- Other Settings- Default Settings,然后可以搜索gradle,右侧有Service directory path可以看到你gradle目录),.gradle\wrapper\dists目录下找到和项目的gradle-wrapper.properties里版本号一致的文件(比如gradle-3.3-all)删除,重新编译即可
Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 Kotlin 开发语言的支持,除此之外还有其他一些新功能,例如:Android Profiler (其中包含了: CPU Profiler、Memory Profiler、Network Profiler ),APK Debugger,Device File Explorer,Java 8 Language Features等。
错误 java.lang.ClassNotFoundException: com.sun.tools.javac.processing.JavacProcessingEnvironment 表示Java运行时环境无法找到名为 com.sun.tools.javac.processing.JavacProcessingEnvironment 的类。这个类是Java编译器API的一部分,它是用于访问编译器的内部处理环境的。
在前文的讲解中对 EventBus 的实现逻辑有了大概的理解之后,我们知道 Java 解析注解可以在运行时解析也可以在编译期间解析。由于运行时解析是通过反射来获取注解标记的类、方法、属性等对象,它的性能要受到反射的影响。因此在一些基础组件中更常见的做法是使用注解解析器技术,像 Dagger、 butterknife、 ARouter 以及本文所接触的 EventBus等框架库都是使用到了注解解析器的技术。接下来我们来实现一个注解解析器。(本文代码有点多)
本文主要研究下在带有lombok(1.16.20版本)注解的代码在java10下的编译问题。
ARetrofit 是一款针对Android组件之间通信的路由框架,实现快速组件化开发的利器。本文主要讲述 ARetrofit 实现的原理。
写过java的都知道,lombok几乎在项目中处于不可或缺的一部分,但是lombok在Gradle的项目中配置并非人人都知道。
本文是一篇笔记,通过实战将Gradle构建多模块的步骤记录下来,为今后新建的项目准备一个脚手架,该脚手架由两个子模块组成:二方库、SpringBoot应用,本文由以下内容组成:
Android Studio升级到3.0后,有不少的改动和新特性,先贴出官方的迁移说明。
考虑这样一种场景:我们是一个汽车生产商,我们生产各种品牌的汽车,比如宝马、奔驰、奥迪等等,为了面向对象开发,我们定义一个基类 Car
今天从gaithub上下载了一个项目,一直提示apt报错,网上找了很久才找到答案,在这里给大家整理一下
最近做Demo比较多,之前在搭网络框架的时候遇到了图片加载的问题,因为我以前的框架中加载网络图片是没有问题,这次居然出问题,但是其实也不难解决吧。
原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误:
AOP指的是:面向切面编程(Aspect-Oriented Programming)。如果说,OOP如果是把问题划分到单个模块的话,那么AOP就是把涉及到众多模块的某一类问题进行统一管理。
大家都知道,JSP在请求的时候,会先转化成Servlet(其实就是个java类),然后生成class文件,再提供服务。 那么生成的java、class文件在哪呢?Eclipse中根本找不到呀! 首先应该了解的是Tomcat在Eclipse的映射关系,参考前一篇博文所述:Tomcat的服务器目录配置 可以了解到,Tomcat在Eclipse中提供了三种位置配置选项: 1 Use workspace metadata 2 Use Tomcat installation 3 Use c
APT从原理上讲是一个编译期的注解处理工具(Annotation Processing Tool)。一些主流的三方库(ButterKnife,Glide)都用到了这个技术来生成代码。
本文通过实战演示了如何将一个基于gradle构建的springboot应用制作成docker镜像,相关的软件版本信息如下:
最后考虑是不是第三方库引用jar出现的问题,然后就一个一个排查第三方库,最后发现我们用支付用的是
有时候,我们需要开发大量重复的代码。每段代码,只有少数成员变量命名不同。这样的场景在开发接口层时,感觉尤为明显。 接口类可能只是实现类的抽象形式。但每个实现方法,我们都要写一遍接口。且每个接口方法的命名,可能和实现方法完全一致。 那么,能否有一种方案,让我们用代码自行生成接口呢?这个方案之前是apt,如今是 annotationProcessor
上一篇博客 【Android APT】编译时技术 ( 开发编译时注解 ) 中 开发 了 annotation 编译时注解 依赖库 , 很简单 , 只有一个 BindView 注解 ;
最近刚完成一个版本的需求,有空闲时间,准备好好整理下手上的项目。因为公司项目开始的时间比较早,很多新的开源框架都没用上(新开的项目用到了),开发效率有时候确实比较低,所以打算逐步为手上的老项目引进一些成熟的框架,来提升开发效率(当然也想偷个懒,目前我一个人负责android项目,开发效率高了我也就不用加班了哈哈)。 首先要摆脱的就是无穷无尽的findViewById了,解决方案有很多,最终选择了著名的Butter Knife,起初在网上搜了一些教材,发现大部分都是老版本的集成方法,目前Butter Knif
单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
使用仓库的方法很简单,首先确保使用者的电脑能够访问到仓库,再在项目中配置仓库地址和jar坐标就行了,如下图红框:
由于maven仓库在外网,网络连接较慢,推荐设置国内的源;最常用的就是上面的配置;
在 Android 主应用的 build.gradle 构建脚本中 , 支持的 Java 版本是 1.8 ;
最近将springboot相关的项目都迁移到了gradle,通过gradle进行编译,这个实现过程比较曲折。由于gradle的后向兼容一直很差, 这导致如果是最新版本的gradle7.1.1版本,很可能之前的build.gradle中的配置无法使用。 这里需要说明一下就是,gradle环境下,相关的插件都是采用ant的方式来使用。
前段时间, 在观望了许久之后, 我终于更新了Android Studio的最新版本(北极狐), 发现项目中使用ButterKnife注解id的代码出现了警告,警告信息如下:
最近习惯性上班划水,划水嘛,那必然要有一个明确的划算目标,突然想起在面试的时候一个面试官问的一个问题:除了maven 还会些啥? 这我就很蒙,你说的是个啥,不就只有maven嘛?好像有点“初生牛犊不怕虎”的感觉
Gradle在android开发中应用地十分广泛,但相信有很多同学并不很了解gradle 本文主要介绍了使用gradle的一些实用技巧,帮助读者增进对这个熟悉的陌生人的了解 主要包括以下内容
《java版gRPC实战》全系列链接 用proto生成代码 服务发布和调用 服务端流 客户端流 双向流 客户端动态获取服务端地址 基于eureka的注册发现 关于eureka 前面咱们在开发客户端应用时,所需的服务端地址都是按如下步骤设置的: 在application.yml中配置,如下图: 📷 在用到gRPC的bean中,使用注解GrpcClient即可将Stub类注入到成员变量中: 📷 上述操作方式的优点是简单易用好配置,缺点也很明显:服务端的IP地址或者端口一旦有变化,就必须修改application
在 Android 中 , 使用 Room 数据库访问框架操作数据库 , 运行是报如下错误 ;
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 常见场景 作为java库的开发者,如何让其他项目用上自己的java库?常用方式是上传到内网环境的Nexus3私服,其他java项目用maven或gradle从Nexus私服下载这个java库使用: [在这里插入图片描述] 上述过程是一名java程序员的基本功,今天咱们就来实战演练这套基本功,全文由以下内容组成: 准备工作 Nexus3上创建帐号 Nexus3上创
AndServer是阿里大佬yanzhenjie的开源项目,项目地址: https://github.com/yanzhenjie/AndServer, 目前有大约2.5k的star,写得还是相对不错的,感兴趣的同学可以尝试去阅读一下源码.
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《java版gRPC实战》全系列链接 用proto生成代码 服务发布和调用 服务端流 客户端流 双向流 客户端动态获取服务端地址 基于eureka的注册发现 关于eureka 前面咱们在开发客户端应用时,所需的服务端地址都是按如下步骤设置的: 在application.yml中配置,如下图: [在这里插入图片描述] 在用到gRPC的bean中,使用注解GrpcCl
Github作者有讲How to use it,虽然刚学安卓,按照经验这应该很easy。 然后按照作者说的步骤搞完了generate并没有效果。。。
在Android开发中,注解是非常多的,如果不去了解,你可能感受不到注解的存在,一些框架用到的注解是很多的,例如Butterknife、Retrofit、Dagger2、Hilt、ViewBinding、DataBinding等等,下面简单的来了解一下注解。
在sprigboot中,处理配置文件最好的方法是采用@ConfigurationProperties注解。该注解能方便的将配置文件中的属性配置到具体的对象中。 本文基于的springboot版本如下:
使用插件可以让 spring boot 项目中自己定义的PropertiesConfiguration类属性在配置时自动提示
相信大部分的开发者都用过注解,尤其是对使用过Spring的开发者来说,注解是现代Spring中不可获取的一部分。Spring从最开始的xml配置到后面的注解配置,不论是从编程习惯还是项目的构建,都对我们程序员产生了非常重要的影响。
如果编程语言为Kotlin, 替换 annotationProcessor 为 kapt
领取专属 10元无门槛券
手把手带您无忧上云