使用Jenkins持续集成时运行遇到的问题总结

问题一

java.io.IOException: Cannot run program "gradle" (in directory "/Users/Shared/Jenkins/Home/jobs/test/workspace"): error=2, No such file or directory    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)    at hudson.Proc$LocalProc.(Proc.java:244)    at hudson.Proc$LocalProc.(Proc.java:216)    at hudson.Launcher$LocalLauncher.launch(Launcher.java:707)    at hudson.Launcher$ProcStarter.start(Launcher.java:338)    at hudson.Launcher$ProcStarter.join(Launcher.java:345)    at hudson.plugins.gradle.Gradle.performTask(Gradle.java:201)    at hudson.plugins.gradle.Gradle.perform(Gradle.java:97)    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:695)    at hudson.model.Build$RunnerImpl.build(Build.java:178)    at hudson.model.Build$RunnerImpl.doRun(Build.java:139)    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:465)    at hudson.model.Run.run(Run.java:1404)    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)    at hudson.model.ResourceController.execute(ResourceController.java:88)    at hudson.model.Executor.run(Executor.java:238)Caused by: java.io.IOException: error=2, No such file or directory    at java.lang.UNIXProcess.forkAndExec(Native Method)    at java.lang.UNIXProcess.(UNIXProcess.java:53)    at java.lang.ProcessImpl.start(ProcessImpl.java:91)    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)    ... 16 moreBuild step 'Invoke Gradle script' changed build result to FAILUREBuild step 'Invoke Gradle script' marked build as failureFinished: FAILURE

解决:

这个gradle的配置不对。进入项目的详情页,点击设置,找到“构建”那里的Invoke Gradle script,设置为:Use Gradle Wrapper,然后task里输入build。最后保存。

问题二

’Users/wys/Library/Android/sdk’ not exist
Jenkins android集成遇到的问题_第1张图片

Google 了一下原因:是由于文件权限的问题
https://stackoverflow.com/questions/39568402/jenkins-giving-the-sdk-directory-doesnt-exist#comment66465785_39568402

设置的路径是Android Studio sdk的默认路径 Users/***/Library/Android/sdk,Library目录是系统的目录,没有读取Library 目录的权限,所以导致失败。

解决办法

  • 添加权限:
    通过终端进入Library目录

    执行 chmod -R 777

    或者 sudo chmod -R 777

  • 把sdk换个目录存放 。

问题三:

* What went wrong:Execution failed for task ':app:lint'.> Lint found errors in the project; aborting build.  Fix the issues identified by lint, or add the following to your build script to proceed with errors:  ...  android {      lintOptions {          abortOnError false      }  }  ...   Errors found:   /Users/Shared/Jenkins/Home/workspace/test/app/build.gradle: Error: All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0-alpha1, 28.0.0. Examples include com.android.support:support-media-compat:28.0.0-alpha1 and com.android.support:animated-vector-drawable:28.0.0 [GradleCompatible]  

从log 理可以看出,是由于引入的库版本不一致造成的,解决方法可以是:

添加:

 android {      lintOptions {          abortOnError false      }  } 

或者修改一致版本

问题四

这个问题是自己忘了配置打包环境。。。

Build step 'Invoke Gradle script' changed build result to SUCCESS[WanAndroid] $ echo '"resolving effective environment"'ERROR: Build step failed with exceptionjava.lang.NullPointerExceptionat org.jenkinsci.plugins.androidsigning.SigningComponents.fromCredentials(SigningComponents.java:22)at org.jenkinsci.plugins.androidsigning.SignApksBuilder.perform(SignApksBuilder.java:294)at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)at hudson.model.Build$BuildExecution.build(Build.java:206)at hudson.model.Build$BuildExecution.doRun(Build.java:163)at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)at hudson.model.Run.execute(Run.java:1810)at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)at hudson.model.ResourceController.execute(ResourceController.java:97)at hudson.model.Executor.run(Executor.java:429)Build step 'Sign Android APKs' marked build as failureFinished: FAILURE

在android gradle下:

signingConfigs {    release {        keyAlias '*****'        keyPassword '****'        storeFile file('****')        storePassword '***'    }}

问题五 配置打包后文件

在项目配置中

Jenkins 构建后操作 – Archive the artifacts
Jenkins android集成遇到的问题_第2张图片
在这里插入图片描述
构建完成后的控制台会显示出构建成功的apk文件
Jenkins android集成遇到的问题_第3张图片
希望能够帮到遇到相同问题的小伙伴~~~

更多相关文章

  1. Android中XML文件的序列化生成与解析
  2. Android使用MediaStore.ACTION_IMAGE_CAPTURE,拍照到指定目录
  3. 关于 SQLiteOpenHelper 的自创建数据库目录文件
  4. 设置android的布局文件的背景颜色为黑色
  5. Android 获取本地所有音频文件
  6. Android 权限清单
  7. android 读取根目录下的文件或文件夹
  8. Android Kotlin 动态申请权限

随机推荐

  1. android 开机启动
  2. Android(安卓)VideoView播放视频
  3. android 开发
  4. android 监听软键盘 回车键
  5. Android中3D gallary的实现
  6. Android保持背光常亮的设置方法
  7. Android之OenGL ES 之 EGL
  8. android clipPath切割画布
  9. Android(安卓)-- 倒计时Button的实现
  10. Android中SeekBar进度条操作