Cru*_*234 5 c# android batch-file unity-game-engine
当我从命令行运行以下构建脚本时,build.log 中没有错误,但也没有生成 APK。有时,我可以使用完全相同的命令进行构建,而无需添加或更改文件(我已经使用 Meld 检查了文件夹差异)。
如果我打开和关闭 unity,我似乎会更成功,但仍然不能保证它会使用命令行构建。关闭 unity 后也有添加或更改的文件。
通过 GUI 统一运行构建时,它始终有效。
Windows 命令行:
START /WAIT "" "C:\Program Files\Unity\Editor\Unity.exe" -batchmode -quit -executeMethod BuildScript.BuildAndroid -logfile build.log
Run Code Online (Sandbox Code Playgroud)
我也试过-nographics无济于事
构建脚本.cs:
public class EditorSetup {
public static string AndroidSdkRoot {
get { return EditorPrefs.GetString("AndroidSdkRoot"); }
set { EditorPrefs.SetString("AndroidSdkRoot", value); }
}
public static string JdkRoot {
get { return EditorPrefs.GetString("JdkPath"); }
set { EditorPrefs.SetString("JdkPath", value); }
}
// This requires Unity 5.3 or later
public static string AndroidNdkRoot {
get { return EditorPrefs.GetString("AndroidNdkRoot"); }
set { EditorPrefs.SetString("AndroidNdkRoot", value); }
}
}
public class BuildScript {
public static string AndroidTitle = "Android"
[MenuItem("Custom Build/Build AndroidHeadsetClient")]
public static void BuildAndroid()
{
EditorSetup.AndroidSdkRoot = Environment.GetEnvironmentVariable("ANDROID_SDK_HOME");
EditorSetup.JdkRoot = Environment.GetEnvironmentVariable("JDK_HOME");
Debug.Log("JDK_HOME: " + EditorSetup.JdkRoot.ToString());
Debug.Log("ANDROID_SDK_HOME: " + EditorSetup.AndroidSdkRoot.ToString());
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scenes/Main/" + AndroidTitle + ".unity" };
buildPlayerOptions.locationPathName = "MyArtifact.apk";
buildPlayerOptions.target = BuildTarget.Android;
buildPlayerOptions.options = BuildOptions.None;
BuildPipeline.BuildPlayer(buildPlayerOptions);
}
}
Run Code Online (Sandbox Code Playgroud)
文件结构:
.
??? Assets
? ??? Animations
? ? ??? ...
? ??? Animations.meta
? ??? Animators
? ? ??? ...
? ??? Animators.meta
? ??? AudioClips
? ? ??? ...
? ??? AudioClips.meta
? ??? Data
? ? ??? ...
? ??? Data.meta
? ??? Documents
? ? ??? ...
? ??? Documents.meta
? ??? Editor
? ? ??? BuildScript.cs
? ? ??? BuildScript.cs.meta
? ? ??? ...
???...
Run Code Online (Sandbox Code Playgroud)
统一版本:5.6.1f1
对此问题的任何帮助将不胜感激。
小智 2
[固定的]
发生这种情况可能是由于多个问题,真正的问题是,Unity 批处理模式不会在控制台或日志文件中显示正确的错误日志。
我删除了 -batchmode 选项并运行了该命令。现在,在打开 Unity 编辑器的情况下执行该命令。现在它将在日志中或弹出窗口中显示所有错误。
我的问题:
就我而言,我忘记更改一些密钥库参数,并且 Unity 显示了一个错误弹出窗口。
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |