示例#1
0
        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);
        }
示例#2
0
        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)));
            }
        }