public virtual void Initialize(string androidSdkPath = null, string androidNdkPath = null, string javaSdkPath = null) { androidSdkPath = androidSdkPath ?? PreferedAndroidSdkPath; androidNdkPath = androidNdkPath ?? PreferedAndroidNdkPath; javaSdkPath = javaSdkPath ?? PreferedJavaSdkPath; AndroidSdkPath = ValidateAndroidSdkLocation(androidSdkPath) ? androidSdkPath : AllAndroidSdks.FirstOrDefault(); AndroidNdkPath = ValidateAndroidNdkLocation(androidNdkPath) ? androidNdkPath : AllAndroidNdks.FirstOrDefault(); JavaSdkPath = ValidateJavaSdkLocation(javaSdkPath) ? javaSdkPath : GetJavaSdkPath(); if (!string.IsNullOrEmpty(JavaSdkPath)) { JavaBinPath = Path.Combine(JavaSdkPath, "bin"); } else { JavaBinPath = null; } if (!string.IsNullOrEmpty(AndroidSdkPath)) { AndroidToolsPath = Path.Combine(AndroidSdkPath, "tools"); AndroidToolsPathShort = GetShortFormPath(AndroidToolsPath); AndroidPlatformToolsPath = Path.Combine(AndroidSdkPath, "platform-tools"); AndroidPlatformToolsPathShort = GetShortFormPath(AndroidPlatformToolsPath); } else { AndroidToolsPath = null; AndroidToolsPathShort = null; AndroidPlatformToolsPath = null; AndroidPlatformToolsPathShort = null; } if (!string.IsNullOrEmpty(AndroidNdkPath)) { // It would be nice if .NET had real globbing support in System.IO... string toolchainsDir = Path.Combine(AndroidNdkPath, "toolchains"); IsNdk64Bit = Directory.EnumerateDirectories(toolchainsDir, "arm-linux-androideabi-*") .Any(dir => Directory.Exists(Path.Combine(dir, "prebuilt", NdkHostPlatform64Bit))); } // we need to look for extensions other than the default .exe|.bat // google have a habbit of changing them. Adb = GetExecutablePath(AndroidPlatformToolsPath, Adb); Android = GetExecutablePath(AndroidToolsPath, Android); Emulator = GetExecutablePath(AndroidToolsPath, Emulator); Monitor = GetExecutablePath(AndroidToolsPath, Monitor); NdkStack = GetExecutablePath(AndroidNdkPath, NdkStack); }
public virtual void Initialize(string androidSdkPath = null, string androidNdkPath = null, string javaSdkPath = null) { AndroidSdkPath = ValidateAndroidSdkLocation(androidSdkPath) ? androidSdkPath : AllAndroidSdks.FirstOrDefault(); AndroidNdkPath = ValidateAndroidNdkLocation(androidNdkPath) ? androidNdkPath : AllAndroidNdks.FirstOrDefault(); JavaSdkPath = ValidateJavaSdkLocation(javaSdkPath) ? javaSdkPath : GetJavaSdkPath(); if (!string.IsNullOrEmpty(JavaSdkPath)) { JavaBinPath = Path.Combine(JavaSdkPath, "bin"); } else { JavaBinPath = null; } if (!string.IsNullOrEmpty(AndroidSdkPath)) { AndroidToolsPath = Path.Combine(AndroidSdkPath, "tools"); AndroidToolsPathShort = GetShortFormPath(AndroidToolsPath); AndroidPlatformToolsPath = Path.Combine(AndroidSdkPath, "platform-tools"); AndroidPlatformToolsPathShort = GetShortFormPath(AndroidPlatformToolsPath); } else { AndroidToolsPath = null; AndroidToolsPathShort = null; AndroidPlatformToolsPath = null; AndroidPlatformToolsPathShort = null; } if (!string.IsNullOrEmpty(AndroidNdkPath)) { // It would be nice if .NET had real globbing support in System.IO... string toolchainsDir = Path.Combine(AndroidNdkPath, "toolchains"); IsNdk64Bit = Directory.EnumerateDirectories(toolchainsDir, "arm-linux-androideabi-*") .Any(dir => Directory.Exists(Path.Combine(dir, "prebuilt", NdkHostPlatform64Bit))); } }