【发布时间】:2017-06-27 20:51:34
【问题描述】:
当我从命令行运行以下构建脚本时,build.log 中没有错误,但也没有生成 APK。有时我可以使用完全相同的命令来构建,而无需添加或更改文件(我已经使用 Meld 检查了文件夹差异)。
如果我打开和关闭统一,我似乎会更成功,但仍然不能保证它会使用命令行构建。关闭unity后也有添加或更改的文件。
在通过 GUI 统一运行构建时,它始终有效。
Windows 命令行:
START /WAIT "" "C:\Program Files\Unity\Editor\Unity.exe" -batchmode -quit -executeMethod BuildScript.BuildAndroid -logfile build.log
我也尝试过-nographics 无济于事
BuildScript.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);
}
}
文件结构:
.
├── Assets
│ ├── Animations
│ │ ├── ...
│ ├── Animations.meta
│ ├── Animators
│ │ ├── ...
│ ├── Animators.meta
│ ├── AudioClips
│ │ ├── ...
│ ├── AudioClips.meta
│ ├── Data
│ │ ├── ...
│ ├── Data.meta
│ ├── Documents
│ │ ├── ...
│ ├── Documents.meta
│ ├── Editor
│ │ ├── BuildScript.cs
│ │ ├── BuildScript.cs.meta
│ │ ├── ...
└──...
Unity 版本:5.6.1f1
对于这个问题的任何帮助将不胜感激。
【问题讨论】:
-
您说的是
Build.cs,但您的脚本名称是BuildScript?真正的名字是什么?你能描述一下你的设置是什么吗?例如,如果将 BuildScript 放入自己的文件名中..EditorSetup 怎么样?您将这些脚本放在哪个文件夹中?我或许可以提供帮助,但需要更多信息。 -
在上面添加了一个文件结构,如果您需要更多信息,请告诉我。我还修复了它实际上称为
BuildScript.cs的文件的名称 -
设置没问题。
EditorSetup怎么样?最好提及您的 Unity 版本 -
EditorSetup类在BuildScript.cs和BuildScript类中。你想让我从统一本身获得特定设置吗?上面已添加 Unity 版本。 -
不,没关系。我将尝试使用这些信息来复制它,并确定这是一个错误还是你的错。我今天有空的时候会这样做,所以请继续查看。
标签: c# android batch-file unity3d