Android Room 1.0.0编译警告(RELEASE_7 < 1.8)消除方法咨询
解决Room 1.0.0注解处理器Java版本不匹配的警告
这个警告我之前维护老项目时也碰到过,本质是Room 1.0.0版本的注解处理器(RoomProcessor)默认只支持到Java 7,而你的项目编译用的是Java 8,版本不匹配才抛出了这个警告。下面给你两个可行的解决办法:
办法一:升级Room到支持Java 8的版本
Room 1.0.0是比较早期的版本,对Java 8的支持不完善。你可以把Room升级到1.1.1及以上版本(比如更稳定的1.1.1或者后续的2.x系列),这些版本的注解处理器已经适配了Java 8。
修改你的Gradle依赖:
// 替换成对应的高版本 implementation "android.arch.persistence.room:runtime:1.1.1" annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
升级后,注解处理器会自动适配Java 8的编译环境,警告会直接消失——而且你之前加的android.arch.lifecycle:common-java8本来就和Room的这个问题无关,完全可以移除。
办法二:强制指定注解处理器的Java版本(不升级Room的情况下)
如果因为项目限制不能升级Room,那可以在Gradle中强制让Room注解处理器使用Java 8的source版本,和项目的编译设置对齐:
在你的模块级build.gradle中添加如下配置:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // 给注解处理器指定Java 8的source版本 annotationProcessorOptions { compilerArgs = ["-source", "1.8"] } }
这样配置后,Room的注解处理器会按照Java 8的标准处理注解,就不会再出现版本不匹配的警告了。
内容的提问来源于stack exchange,提问作者Anrimian
相关产品推荐
相关产品推荐

