質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

2158閲覧

Jenkins・Unity3d を使ったapkファイルのビルドが失敗する事象について

mizuoh

総合スコア14

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/03/11 18:32

掲題の通り、下記サイトを参考にUnityで作ったアプリのapkファイルのビルドの自動化を試みましたが、失敗してしまいます。

https://qiita.com/unsoluble_sugar/items/a268b6c38d9603d871da

関連しそうなログなどは下記の通りです。

①Jenkinsのコンソールに出力されるログ

ビルドします。 ワークスペース: C:\workspace\JenkinsTest
Piping unity Editor.log from C:\WINDOWS\…\Unity\Editor\Editor.log
[JenkinsTest] $ "C:\…Editor\Unity.exe" -projectPath C:\workspace\JenkinsTest -quit -batchmode -executeMethod MyBuilder.BuildProjectAllSceneAndroid

WARNING: No change detected to Editor.log path: 'C:\WINDOWS\…\Editor\Editor.log'.The unity3d plugin was probably unable to find it in its expected locations (see JENKINS-24265).Consider using the -logFile argument to force a known editor.log path or report the issue.

成果物を保存中
'newgame.apk'に該当するものはありません。
ERROR: Step ‘成果物を保存’ failed: 指定されたファイルパターン「newgame.apk」に合致するファイルがありません。設定ミス?
Finished: FAILURE


②UnityのEditor.logの該当箇所と思われる部分抜粋

DisplayProgressbar: Detecting Android SDK
UnityException: Build failure!
Unable to locate Android SDK.


②からして、そもそも「UnityException: Build failure!Unable to locate Android SDK.」の通り、ビルドする処理が失敗しているのかと想像しています。

ただ、UnityのEditorからEditタブ>Preferences>ExternalToolで確認しましたが、Android SDKのパスは設定できています。
また、Jenkinsを使わずに、普通に単純にUnityのエディターでビルドを実行すると、ビルドは成功し、apkファイルは吐き出されます。
(こうなると、上述のサイトをほぼ転記したMyBuilder.csでのビルド処理に原因があるのでしょうか…?)

このあたりで一旦力尽き、どなたかご存知の方がいればとお知恵を貸していただければと思います。

※MyBuilder.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class MyBuilder
{
// ビルド実行でAndroidのapkを作成する例
[UnityEditor.MenuItem("Tools/Build Project AllScene Android")]
public static void BuildProjectAllSceneAndroid()
{
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android);
List<string> allScene = new List<string>();
foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
if (scene.enabled)
{
allScene.Add(scene.path);
}
}
PlayerSettings.applicationIdentifier = "com.mycompany.newgame";
PlayerSettings.statusBarHidden = true;
BuildPipeline.BuildPlayer(
allScene.ToArray(),
"newgame.apk",
BuildTarget.Android,
BuildOptions.None
);
}
}


気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

自分も似たような事象でハマりましたが、以下で解決しました。

■前提
Windows10でjenkins起動

■対策
jenkinsのサービスを起動してるユーザを、
SYSTEM→ログインユーザに変更

投稿2020/06/23 02:13

編集2020/06/23 02:14
val0307

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ログを見ると Unity.exe に -logfile オプションがないので、エラーの詳細がわかりません。-logfile で指定したファイルに出力される内容を確認してみてください。
今手元で jenkins を確認できないのですが、jenkins の unity plugin で指定があると思います。

投稿2019/04/03 14:26

suppori

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suppori

2019/04/05 12:26

ごめんなさい。嘘です。 jenkins では -logfile は不要です。 まずは、普段 Unity エディタを使っている環境でコマンドラインビルドを -logfile 付きでビルドされるのも一つの手だとは思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問