使用Jenkins自动构建Android问题总结

使用Jenkins自动构建Android,遇到几个坑:

1.使用gradle build的时候提示无法从jcenter下载资源

解决方法:安装Android SDK时,需要选中Extra中的repository

2.jenkins执行build工程时控制台出现Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"错误

解决方法:注释或删除$JENKINS_HOME/apache-tomcat/bin/daemon.sh中的以下部分

# Set juli LogManager config file if it is present and an override has not been issued

if [ -z "$LOGGING_CONFIG" ]; then

if [ -r "$CATALINA_BASE/conf/logging.properties" ]; then

LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

else

# Bugzilla 45585

LOGGING_CONFIG="-Dnop"

fi

fi

test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"

同时在注释# ----- Execute The Requested Command -----------------------------------------的后续脚本中,删掉"$LOGGING_CONFIG"

3.运行$ANDROID_HOME/build-toos/23.0.1/aapt时出现No such file ....错误

解决方法:缺少32bit的库文件或包,根据提示使用yum install安装相应的包即可

4.build过程出现Could not create service of type InitScriptHandler using BuildScopeServices.createInitScriptHandler()

解决方法:在build选项中加入--stacktrace,从错误提示中发现无法创建$JENKINS_HOME/.gradle目录,由于jenkins是root用户安装,没有给tomcat用户授权,使用chown授权给tomcat用户即可

5.其他权限不足等情况

解决方法:jenkins使用用户tomcat执行脚本,根据提示信息授权即可


总结

解决问题,需要根据错误提示或者日志输出定位问题所在,有时候错误提示不够清晰时,可以添加--debug --statcktrace等参数获取进一步的信息。

凭经验,通过猜测,能解决问题那是最好的,不过,对于大多数人或者大多数情况来说,根据日志,确定问题所在再行处理才是解决问题的正道。

你可能感兴趣的:(使用Jenkins自动构建Android问题总结)