我正在尝试设置 Jenkins 服务器以自动构建 Unity,但出现 gradle 错误。
使用命令行构建工作正常,但如果尝试使用 Jenkins 则会失败。
Logs:
失败:构建失败并出现异常。
-
什么地方出了错:
任务“:mergeReleaseResources”执行失败。
工人提出了8个例外:
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows Daemon #7:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows 守护进程 #4:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows 守护进程 #3:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows Daemon #6:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows 守护进程 #5:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows 守护进程 #2:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows 守护进程 #1:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
com.android.builder.internal.aapt.v2.Aapt2InternalException:AAPT2 aapt2-3.4.0-5326820-windows Daemon #0:守护进程启动失败
正常情况下不会发生这种情况,如果发生,请提出问题。
尝试:
使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
获得更多帮助https://help.gradle.org https://help.gradle.org
4 秒内构建失败
]
标准输出[
任务:preBuild UP-TO-DATE
任务:preReleaseBuild
任务:compileReleaseAidl 无源
任务:compileReleaseRenderscript 无源
任务:检查ReleaseManifest
任务:generateReleaseBuildConfig
任务:准备LintJar
任务:generateReleaseSources
任务:javaPreCompileRelease
任务:mainApkListPersistenceRelease
任务:生成ReleaseResValues
任务:生成释放资源
任务:mergeReleaseResources 失败
8 actionable tasks: 8 executed
]
exit code: 1
at UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) [0x00031] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) [0x00015] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) [0x0000a] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) [0x0001f] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) [0x00029] in <24d9b022aa584914af833273ea899103>:0
Rethrow as GradleInvokationException: Gradle build failed
at UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) [0x0004d] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x000a8] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00074] in <24d9b022aa584914af833273ea899103>:0
Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown.
at UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) [0x0001e] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) [0x00110] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) [0x002c8] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) [0x00001] in <24d9b022aa584914af833273ea899103>:0
at UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) [0x000da] in C:\buildslave\unity\build\Editor\Mono\BuildPipeline\PostprocessBuildPlayer.cs:281
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPipeline:BuildPlayerInternal(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:368)
UnityEditor.BuildPipeline:BuildPlayer(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:267)
UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:250)
AutomateBuildProcess:StartBuild() (at Assets\[ProjectName]\Scripts\Utility\Editor\AutomateBuildProcess.cs:35)
(Filename: <24d9b022aa584914af833273ea899103> Line: 0)
构建脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System;
using System.IO;
using System.IO.Compression;
public class AutomateBuildProcess
{
private static string BuildsFolder = "D:/GDP/Jenkins/workspace/[ProjectName]/Builds/";
public static void StartBuild()
{
List<string> enabledScenePathNames = new List<string>();
foreach (var scene in EditorBuildSettings.scenes)
{
if (scene.enabled)
{
enabledScenePathNames.Add(scene.path);
}
}
string buildNumber = "GradleFixTest"; //Environment.GetEnvironmentVariable("BUILD_NUMBER");
string _fileName = "[ProjectName]_" + buildNumber + ".apk";
Debug.Log("Starting android build");
BuildPlayerOptions newBuildPlayerOptions = new BuildPlayerOptions();
newBuildPlayerOptions.scenes = enabledScenePathNames.ToArray();
newBuildPlayerOptions.locationPathName = BuildsFolder + _fileName;
newBuildPlayerOptions.target = BuildTarget.Android;
newBuildPlayerOptions.targetGroup = BuildTargetGroup.Android;
newBuildPlayerOptions.options = BuildOptions.None;
BuildPipeline.BuildPlayer(newBuildPlayerOptions);
}
}
Unity 构建的论点:
-quit -batchMode -executeMethod AutomateBuildProcess.StartBuild -logFile D:/Editor.log
Jenkins 在 Windows 10 机器上运行。