Jenkins 构建时出现Room数据库Each bind variable in the query must have a matching method parameter. Cannot find method parameters for
RAE3,254人阅读
在Jenkins构建时候发现这样的一般报错信息:
warning: Current JDK version 1.8.0_242-b08 has a bug (https://bugs.openjdk.java.net/browse/JDK-8007720) that prevents Room from being incremental. Consider using JDK 11+ or the embedded JDK shipped with Android Studio 3.5+.
error: Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :xMax, :yMax. - com.geostar.android.sdk.common.dao.IMediaDao.queryMedias(double, double, double, double)
error: Unused parameters: arg2,arg3 - com.geostar.android.sdk.common.dao.IMediaDao.queryMedias(double, double, double, double)
2 errors
1 warning
问题很明显了,使用Room插件的时候生成的参数被替换成arg2
、arg3
导致无法绑定参数信息。
项目中使用的room插件是版本是2.3.0
,如果是低于这个版本的还是没有提示这一行信息的:warning: Current JDK version 1.8.0_242-b08 has a bug (https://bugs.openjdk.java.net/browse/JDK-8007720) that prevents Room from being incremental. Consider using JDK 11+ or the embedded JDK shipped with Android Studio 3.5+.
这样提示就很明显了,Jenkins是使用docker来搭建的,那么只需要将JDK升级到11即可,可以再docker中使用JAVA_HOME
的环境变量。
使用的docker-compose文件来搭建,所以只需要指定一下环境参数即可,其他的方法可以找网上参考。
指定environment环境变量
version: '3'
services:
jenkins:
hostname: jenkins
container_name: jenkins
image: jenkins/jenkins
restart: always
environment:
JAVA_HOME: /var/jenkins_home/tools/jdk/jdk-11/
ports:
- "8080:8080"
volumes:
- /data/docker/jenkins/:/var/jenkins_home
networks:
- app_net
networks:
app_net:
driver: bridge
ipam:
config:
- subnet: 10.10.0.0/16
评论 | 0 条评论