public override int GetComponentVersion(AndroidSDKTools sdkTools, ProgressHandler onProgress) { if (onProgress != null) { onProgress(this._task, "Detecting current tools version"); } return(int.Parse(Regex.Match(sdkTools.ToolsVersion(null), @"\d+").Value)); }
private void AlignPackage(PostProcessorContext context) { AndroidSDKTools tools = context.Get <AndroidSDKTools>("SDKTools"); string errorMsg = "Failed to align APK package."; string str2 = Path.Combine(Environment.CurrentDirectory, this._stagingArea); string args = string.Format("4 \"{0}/Package_unaligned.apk\" \"{0}/Package.apk\"", str2); string message = TasksCommon.Exec(tools.ZIPALIGN, args, this._stagingArea, errorMsg, 0); if ((message.Contains("zipalign") || message.Contains("Warning")) || !File.Exists(Path.Combine(str2, "Package.apk"))) { Debug.LogError(message); CancelPostProcess.AbortBuildPointToConsole("APK Aligning Failed!", errorMsg); } }
private string MergeManifests(PostProcessorContext context, string targetManifest, string mainManifest) { AndroidSDKTools tools = context.Get <AndroidSDKTools>("SDKTools"); AndroidLibraries libraries = context.Get <AndroidLibraries>("AndroidLibraries"); bool flag = context.Get <bool>("ExportAndroidProject"); string[] manifestFiles = libraries.GetManifestFiles(); if (!flag && (manifestFiles.Length > 0)) { tools.MergeManifests(targetManifest, mainManifest, manifestFiles, null); return(targetManifest); } FileUtil.CopyFileOrDirectory(mainManifest, targetManifest); return(targetManifest); }
private void CompileResources(PostProcessorContext context) { AndroidLibraries libraries = context.Get <AndroidLibraries>("AndroidLibraries"); string str = context.Get <string>("AndroidJarPath"); AndroidSDKTools tools = context.Get <AndroidSDKTools>("SDKTools"); string str2 = "gen"; string fullName = Directory.CreateDirectory(Path.Combine(this._stagingArea, str2)).FullName; string args = $"package --auto-add-overlay -v -f -m -J " { str2 } " -M " { "AndroidManifest.xml" } " -S " { "res" } " -I " { str } " -F {" bin / resources.ap_ "}"; if (libraries.Count > 0) { args = args + $" --extra-packages {string.Join(":", libraries.GetPackageNames())}"; foreach (string str5 in libraries.GetResourceDirectories()) { args = args + $" -S " { str5 } ""; } } string errorMsg = "Failed to re-package resources."; string str7 = TasksCommon.Exec(tools.AAPT, args, this._stagingArea, errorMsg, 3); if (!str7.Contains("Done!") || !File.Exists(Path.Combine(this._stagingArea, "bin/resources.ap_"))) { Debug.LogError("Failed to re-package resources with the following parameters:\n" + args + "\n" + str7); CancelPostProcess.AbortBuildPointToConsole("Resource re-package failed!", errorMsg); } if (libraries.Count > 0) { List <string> list = new List <string>(); foreach (string str8 in Directory.GetFiles(fullName, "*.java", SearchOption.AllDirectories)) { list.Add(str8.Substring(fullName.Length + 1)); } string str9 = Directory.CreateDirectory(Path.Combine(this._stagingArea, "bin/classes")).FullName; string str10 = $"-bootclasspath " { str } " -d " { str9 } " -source 1.6 -target 1.6 -encoding UTF-8 " { string.Join("\" \"", list.ToArray()) } ""; string str11 = "Failed to recompile android resource files."; string str12 = TasksCommon.Exec(AndroidJavaTools.javacPath, str10, fullName, str11, 0); if (str12.Trim().Length > 0) { Debug.LogError("Failed to compile resources with the following parameters:\n" + str10 + "\n" + str12); CancelPostProcess.AbortBuildPointToConsole("Resource compilation failed!", str11); } } }
private void AAPTPack(PostProcessorContext context, string apkName, string directory, bool compress) { AndroidSDKTools tools = context.Get <AndroidSDKTools>("SDKTools"); string str = ""; if (!compress) { str = " -0 \"\""; } string str2 = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"; string args = $"package -v -f -F {apkName} -A {directory}{str} --ignore-assets " { str2 } ""; string str4 = TasksCommon.Exec(tools.AAPT, args, this._stagingArea, "Android Asset Packaging Tool failed.", 3); if (!str4.Contains("Found 0 custom asset files") && (!str4.Contains("Done!") || !File.Exists(Path.Combine(this._stagingArea, apkName)))) { Debug.LogError($"Android Asset Packaging Tool failed: {tools.AAPT} {args} {str4}"); CancelPostProcess.AbortBuildPointToConsole("AAPT Failed!", "Android Asset Packaging Tool failed."); } }
public void Execute(PostProcessorContext context) { if (this.OnProgress != null) { this.OnProgress(this, "Checking Android SDK and components"); } this._sdkTools = AndroidSDKTools.GetInstance(); if (this._sdkTools == null) { CancelPostProcess.AbortBuild("Build failure!", "Unable to locate Android SDK", null); } context.Set <AndroidSDKTools>("SDKTools", this._sdkTools); this.EnsureSDKComponentVersion(0x18, new SDKToolsDetector(this)); this.EnsureSDKComponentVersion(0x17, new SDKBuildToolsDetector(this)); this.EnsureSDKComponentVersion(0x17, new SDKPlatformToolsDetector(this)); int num = this.EnsureSDKPlatformAPI("Android 6.0", 0x17); context.Set <int>("PlatformApiLevel", num); int num2 = Math.Max((int)PlayerSettings.Android.minSdkVersion, num); context.Set <int>("TargetSDKVersion", num2); this._sdkTools.UpdateToolsDirectories(); this._sdkTools.DumpDiagnostics(); AndroidJavaTools.DumpDiagnostics(); string str = "android.jar"; string androidPlatformPath = this._sdkTools.GetAndroidPlatformPath(num); if (androidPlatformPath.Length == 0) { EditorPrefs.SetString("AndroidSdkRoot", ""); string message = "Android SDK does not include any platforms! Did you run Android SDK setup to install the platform(s)?\nMinimum platform required for build is Android 5.0 (API level 21)\n"; CancelPostProcess.AbortBuild("No platforms found", message, null); } str = Path.Combine(androidPlatformPath, str); context.Set <string>("AndroidJarPath", str); }
public abstract int GetComponentVersion(AndroidSDKTools sdkTools, ProgressHandler onProgress);