Пример #1
0
        public override bool Execute()
        {
            foreach (var disabled in disabledIssues)
            {
                if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(disabled))
                {
                    DisabledIssues = disabled + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
                }
            }

            Log.LogDebugMessage("Lint Task");
            Log.LogDebugMessage("  TargetDirectory: {0}", TargetDirectory);
            Log.LogDebugMessage("  EnabledChecks: {0}", EnabledIssues);
            Log.LogDebugMessage("  DisabledChecks: {0}", DisabledIssues);
            Log.LogDebugMessage("  CheckIssues: {0}", CheckIssues);
            Log.LogDebugTaskItems("  ConfigFiles:", ConfigFiles);
            Log.LogDebugTaskItems("  ResourceDirectories:", ResourceDirectories);
            Log.LogDebugTaskItems("  SourceDirectories:", SourceDirectories);
            Log.LogDebugTaskItems("  ClassDirectories:", ClassDirectories);
            Log.LogDebugTaskItems("  LibraryDirectories:", LibraryDirectories);
            Log.LogDebugTaskItems("  LibraryJars:", LibraryJars);

            if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool()))
            {
                Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath.");
                return(false);
            }

            base.Execute();

            return(!Log.HasLoggedErrors);
        }
Пример #2
0
        public override bool Execute()
        {
            // We need to hard code this test in because Lint will issue an Error
            // if android:debuggable appears in the manifest. We actually need that
            // in debug mode. It seems the android tools do some magic to
            // decide if its needed or not.
            if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("HardcodedDebugMode"))
            {
                DisabledIssues = "HardcodedDebugMode" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
            }

            // We need to hard code this test as disabled in because Lint will issue a warning
            // for all the resources not used. Now because we don't have any Java code
            // that means for EVERYTHING! Which will be a HUGE amount of warnings for a large project
            if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("UnusedResources"))
            {
                DisabledIssues = "UnusedResources" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
            }

            Log.LogDebugMessage("Lint Task");
            Log.LogDebugMessage("  TargetDirectory: {0}", TargetDirectory);
            Log.LogDebugMessage("  EnabledChecks: {0}", EnabledIssues);
            Log.LogDebugMessage("  DisabledChecks: {0}", DisabledIssues);
            Log.LogDebugMessage("  CheckIssues: {0}", CheckIssues);
            Log.LogDebugTaskItems("  ConfigFiles:", ConfigFiles);
            Log.LogDebugTaskItems("  ResourceDirectories:", ResourceDirectories);
            Log.LogDebugTaskItems("  SourceDirectories:", SourceDirectories);
            Log.LogDebugTaskItems("  ClassDirectories:", ClassDirectories);
            Log.LogDebugTaskItems("  LibraryDirectories:", LibraryDirectories);
            Log.LogDebugTaskItems("  LibraryJars:", LibraryJars);

            base.Execute();

            return(!Log.HasLoggedErrors);
        }
Пример #3
0
        public override bool Execute()
        {
            Log.LogDebugMessage("Lint Task");

            if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool()))
            {
                Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath.");
                return(false);
            }

            Version lintToolVersion = GetLintVersion(GenerateFullPathToTool());

            Log.LogDebugMessage("  LintVersion: {0}", lintToolVersion);
            foreach (var issue in DisabledIssuesByVersion)
            {
                if (lintToolVersion >= issue.Value)
                {
                    if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key))
                    {
                        DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
                    }
                }
            }

            Log.LogDebugMessage("  TargetDirectory: {0}", TargetDirectory);
            Log.LogDebugMessage("  JavaSdkPath: {0}", JavaSdkPath);
            Log.LogDebugMessage("  EnabledChecks: {0}", EnabledIssues);
            Log.LogDebugMessage("  DisabledChecks: {0}", DisabledIssues);
            Log.LogDebugMessage("  CheckIssues: {0}", CheckIssues);
            Log.LogDebugTaskItems("  ConfigFiles:", ConfigFiles);
            Log.LogDebugTaskItems("  ResourceDirectories:", ResourceDirectories);
            Log.LogDebugTaskItems("  SourceDirectories:", SourceDirectories);
            Log.LogDebugTaskItems("  ClassDirectories:", ClassDirectories);
            Log.LogDebugTaskItems("  LibraryDirectories:", LibraryDirectories);
            Log.LogDebugTaskItems("  LibraryJars:", LibraryJars);

            foreach (var issue in DisabledIssuesByVersion)
            {
                if (lintToolVersion < issue.Value)
                {
                    DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues));
                    EnabledIssues  = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues));
                }
            }

            EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath };

            base.Execute();

            return(!Log.HasLoggedErrors);
        }
Пример #4
0
        public override bool Execute()
        {
            // We need to hard code this test in because Lint will issue an Error
            // if android:debuggable appears in the manifest. We actually need that
            // in debug mode. It seems the android tools do some magic to
            // decide if its needed or not.
            if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("HardcodedDebugMode"))
            {
                DisabledIssues = "HardcodedDebugMode" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
            }

            // We need to hard code this test as disabled in because Lint will issue a warning
            // for all the resources not used. Now because we don't have any Java code
            // that means for EVERYTHING! Which will be a HUGE amount of warnings for a large project
            if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("UnusedResources"))
            {
                DisabledIssues = "UnusedResources" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
            }

            // We need to hard code this test as disabled in because Lint will issue a warning
            // for the MonoPackageManager.java since we have to use a static to keep track of the
            // application instance.
            if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("StaticFieldLeak"))
            {
                DisabledIssues = "StaticFieldLeak" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
            }

            Log.LogDebugMessage("Lint Task");
            Log.LogDebugMessage("  TargetDirectory: {0}", TargetDirectory);
            Log.LogDebugMessage("  EnabledChecks: {0}", EnabledIssues);
            Log.LogDebugMessage("  DisabledChecks: {0}", DisabledIssues);
            Log.LogDebugMessage("  CheckIssues: {0}", CheckIssues);
            Log.LogDebugTaskItems("  ConfigFiles:", ConfigFiles);
            Log.LogDebugTaskItems("  ResourceDirectories:", ResourceDirectories);
            Log.LogDebugTaskItems("  SourceDirectories:", SourceDirectories);
            Log.LogDebugTaskItems("  ClassDirectories:", ClassDirectories);
            Log.LogDebugTaskItems("  LibraryDirectories:", LibraryDirectories);
            Log.LogDebugTaskItems("  LibraryJars:", LibraryJars);

            if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool()))
            {
                Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath.");
                return(false);
            }

            base.Execute();

            return(!Log.HasLoggedErrors);
        }
Пример #5
0
        public override bool RunTask()
        {
            if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool()))
            {
                Log.LogCodedError("XA5205", Properties.Resources.XA5205_Lint, ToolName);
                return(false);
            }

            bool fromCmdlineTools = ToolPath.IndexOf("cmdline-tools", StringComparison.OrdinalIgnoreCase) >= 0;

            Version lintToolVersion = GetLintVersion(GenerateFullPathToTool());

            Log.LogDebugMessage("  LintVersion: {0}", lintToolVersion);
            foreach (var issue in DisabledIssuesByVersion)
            {
                if (fromCmdlineTools || lintToolVersion >= issue.Value)
                {
                    if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key))
                    {
                        DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
                    }
                }
            }

            foreach (var issue in DisabledIssuesByVersion)
            {
                if (!fromCmdlineTools || (lintToolVersion < issue.Value))
                {
                    DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues));
                    EnabledIssues  = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues));
                }
            }

            EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath };

            resource_name_case_map = MonoAndroidHelper.LoadResourceCaseMap(ResourceNameCaseMap);

            base.RunTask();

            return(!Log.HasLoggedErrors);
        }
Пример #6
0
        public override bool Execute()
        {
            if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool()))
            {
                Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath.");
                return(false);
            }

            Version lintToolVersion = GetLintVersion(GenerateFullPathToTool());

            Log.LogDebugMessage("  LintVersion: {0}", lintToolVersion);
            foreach (var issue in DisabledIssuesByVersion)
            {
                if (lintToolVersion >= issue.Value)
                {
                    if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key))
                    {
                        DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : "");
                    }
                }
            }

            foreach (var issue in DisabledIssuesByVersion)
            {
                if (lintToolVersion < issue.Value)
                {
                    DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues));
                    EnabledIssues  = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues));
                }
            }

            EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath };

            resource_name_case_map = MonoAndroidHelper.LoadResourceCaseMap(ResourceNameCaseMap);

            base.Execute();

            return(!Log.HasLoggedErrors);
        }