TA的每日心情 | 开心 2019-5-16 15:42 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
1、jenkins登录提示anonymous没有Overall/Read权限(hudson.security.AccessDeniedException2: anonymous没有Overall/Read权限)
原因:jenkins的全局安全配置有问题
解决:
1、访问控制选择jenkins专用用户数据库
2、授权策略选择任何用户可以做任何事或者登录用户可以做任何事
3、重启jenkins(最好等几分钟)
ps:当jenkins卡在提示anonymous没有Overall/Read权限,找到config.xml文件,把<useSecurity>true</useSecurity>改成<useSecurity>false</useSecurity>再重新配置权限
2、jenkins在系统管理提示反向代理设置有误
原因:mac系统使用brew安装jenkins,系统管理的系统设置里的jenkins url默认为localhost:8080,由于plist配置的httpListenAddress为了让ip和其他机器访问改了,所以jenkins的url也要改
解决:jenkins url改成ip+端口号
ps:不要再端口号加/jenkins,加了之后还是会报原错误
3、jenkins在系统管理提示不安全的 Jenkins 允许网络上的任何人以你的身份访问程序。考虑至少启用身份验证来阻止滥用
原因:全局安全配置没有启用安全
解决:
打开 Jenkins 首页,点击左侧的侧边栏-系统管理,然后点击全局安全配置进入到系统安全配置页面:
首先勾选启用安全,然后在访问控制下面:
安全域里的勾选Jenkins 专有登录用户可以做任何事用户数据库,并勾选允许注册,不然没法进行注册
授权策略里的勾选项目矩阵授权策略
ps:授权策略按需求来选择
4、jenkins安装了之后用localhost:8080,使用ip或者局域网其他机器访问不了
原因:使用brew安装jenkins会避免很多其他安装方式产生的用户权限问题,但是会将httpListenAddress默认设置为127.0.0.1,这样虽然可以在本地用localhost:8080访问,但是本机和局域网均无法用ip访问。
解决:
改两个路径下的plist配置,并重启
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
将上面两个plist中的httpListenAddress后的ip地址,修改为本机IP或者0.0.0.0
5、本地打包失败,显示:Error:Execution failed for task ':app:compileDebugNdk'.
Error:Execution failed for task ':app:compileDebugNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/
Then add ndk.dir=path/to/ndk in “local.properties”
(On Windows, make sure you escape backslashes, e.g.
原因:(我一开始以为sdk是有带着ndk的)
(1)ndk没装
(2)local.properties 没有添加ndk的目录
解决:到官网去下载ndk的压缩包,解压到相应的目录,配置好环境变量,并把ndk的目录添加到loca.properties文件(loca.properties文件是在当前项目的目录下)
6、本地编译打包失败,提示"A problem occurred configuring root project 'xxx(当前项目名称)'"
原因:在app项目的build.gradle中的buildscript下的jcenter()和google()的顺序写反了
解决:google()在前,jcenter()在后
7、Jenkins在使用gradle 命令进行构建打包失败,提示“Task‘gradle’ not found in root project 'android_app'”
原因:
(1)使用的源码不是使用gradle进行构建的
(2)在构建中invoke gradle script中使用的命令开头有gradle
但是这里已经显示命令是没有带grale开头,故原因为第一种
解决:更换gradle构建的源码仓库地址
8、Jenkins打包失败,提示“Could not resolve all artifacts for configuration ':classpath'”
原因:Jenkins打包的版本不对,尝试过以下几种方法:
(1)最开始我以为是gradle缺少lint-gradle-api-26.1.2.jar包,想直接去网上下载lint-gradle-api-26.1.2.jar包,但是发现网上找不到这个jar包,能找到lint-gradle-api-25.1.2.jar,尝试过把包放到gradle的lib目录下,结果失败
(2)在项目下的build.gradle 添加google()存储库,将google()添加到repositories下buildscript和allprojects,但是bui.gradle早已存在google()
(3)后来又找到关于(2)项目的build.gradle的allprojects原本就有 google()和 jcenter(),还是报错的问题的解决方案,工程buildscript和allprojects中添加了 mavenLocal()和 mavenCentral(),但是mavenCentral()已存在,我只好把mavenLocal()上去尝试,结果还是行
(4)把build.gradle里的buildscript的jcenter()和meven()注释掉,但是我发现buildscript里是没有maven{},不过我这按照下图,把maven{}加上去后,重新打包,结果还是不行
(5)最后想了好久,把问题的原因归结到gradle上,这里我就尝试过使用brew安装的gradle(5.0)和压缩包安装的gradle(3.5,构建的源码是用gradle 3.5版本的)结果都是不行,我这里最初使用的git是之前的钱迎迎的,参考之前钱迎迎的打包配置也是用gradle 3.5。后面问开发的同学,建议我用钱金金的打包git地址,所以我又换了钱金金的git地址,用的还是gradle 3.5,还是报同样的错误,不过后来对照了钱金金的打包配置发现gradle版本是4.6的,故我把gradle版本换成4.6的,结果成功打包了。借此,我用gradle 4.6版本来构建打包钱迎迎,也成功了。 |
|