使用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等参数获取进一步的信息。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容