<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.4.0-alpha12" type="baseline" client="gradle" dependencies="false" name="AGP (8.4.0-alpha12)" variant="all" version="8.4.0-alpha12">

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.plugins.all { plugin ->"
        errorLine2="                        ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXComposeImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="            multiplatformExtension.sourceSets.all {"
        errorLine2="                                              ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXComposeImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.plugins.all { plugin ->"
        errorLine2="                        ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/docs/AndroidXDocsImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="                    libraryExtension.buildTypes.all { buildType ->"
        errorLine2="                                                ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/docs/AndroidXDocsImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of whenTaskAdded"
        errorLine1="        project.tasks.whenTaskAdded { task ->"
        errorLine2="                      ~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/docs/AndroidXDocsImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.plugins.all { plugin ->"
        errorLine2="                        ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method get"
        errorLine1="        val allHostTests = project.tasks.register(&quot;allHostTests&quot;).get()"
        errorLine2="                                                                  ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        configurations.all { configuration ->"
        errorLine2="                       ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.configurations.all { configuration ->"
        errorLine2="                               ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        buildTypes.all { buildType ->"
        errorLine2="                   ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.configurations.all { configuration ->"
        errorLine2="                               ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.configurations.all { configuration ->"
        errorLine2="                               ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        kmpExtension.targets.all { kotlinTarget ->"
        errorLine2="                             ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="            kotlinTarget.compilations.all {"
        errorLine2="                                      ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="            project.configurations.all { config ->"
        errorLine2="                                   ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="    configurations.all { configuration ->"
        errorLine2="                   ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method findByName"
        errorLine1="        if (project.tasks.findByName(&quot;check&quot;) != null) {"
        errorLine2="                          ~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXMultiplatformExtension.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        project.configurations.all { configuration ->"
        errorLine2="                               ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXPlaygroundRootImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use register instead of create"
        errorLine1="        val buildOnServerTask = tasks.create(BUILD_ON_SERVER_TASK, BuildOnServerTask::class.java)"
        errorLine2="                                      ~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXRootImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="                    subproject.configurations.all { configuration ->"
        errorLine2="                                              ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXRootImplPlugin.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method get"
        errorLine1="        val jvmJarTask = jvmJarTaskProvider.get()"
        errorLine2="                                            ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/ErrorProneConfiguration.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method get"
        errorLine1="                    .get()"
        errorLine2="                     ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/ErrorProneConfiguration.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        this.configurations.all { c ->"
        errorLine2="                            ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/GradleTransformWorkaround.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method findByName"
        errorLine1="        if (project.tasks.findByName(&quot;check&quot;) != null) {"
        errorLine2="                          ~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/Ktlint.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="    project.plugins.all { plugin ->"
        errorLine2="                    ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/LintConfiguration.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        components.all { component ->"
        errorLine2="                   ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method findByName"
        errorLine1="    tasks.findByName(taskName) ?: throw GradleException("
        errorLine2="          ~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use named instead of getByName"
        errorLine1="                tasks.getByName(&quot;publishPluginMavenPublicationToMavenRepository&quot;).doFirst {"
        errorLine2="                      ~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use named instead of getByName"
        errorLine1="                    tasks.getByName(&quot;publishMavenPublicationToMavenRepository&quot;).doFirst {"
        errorLine2="                          ~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="        publications.withType(MavenPublication::class.java).all { publication ->"
        errorLine2="                                                            ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="    multiplatformExtension.targets.all { target ->"
        errorLine2="                                   ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method get"
        errorLine1="            val verifyOutputsTask = verifyOutputs.get()"
        errorLine2="                                                  ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/Release.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of all"
        errorLine1="    libraryVariants.all { variant ->"
        errorLine2="                    ~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/Release.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of whenObjectAdded"
        errorLine1="        configurations.whenObjectAdded {"
        errorLine2="                       ~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/SourceJarTaskHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Use configureEach instead of whenObjectAdded"
        errorLine1="                it.artifacts.whenObjectAdded { _ ->"
        errorLine2="                             ~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/SourceJarTaskHelper.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method findByName"
        errorLine1="        .findByName(FINALIZE_TEST_CONFIGS_WITH_APKS_TASK)!!"
        errorLine2="         ~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/testConfiguration/TestSuiteConfiguration.kt"/>
    </issue>

    <issue
        id="EagerGradleConfiguration"
        message="Avoid using method findByName"
        errorLine1="        project.rootProject.tasks.findByName(FINALIZE_TEST_CONFIGS_WITH_APKS_TASK)!!.dependsOn(task)"
        errorLine2="                                  ~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/testConfiguration/TestSuiteConfiguration.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="                    rootProject.findProperty(ENABLE_ARG) != &quot;false&quot;"
        errorLine2="                                ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/AffectedModuleDetector.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="                    rootProject.findProperty(ENABLE_ARG) != &quot;false&quot;"
        errorLine2="                                ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/AffectedModuleDetector.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="            val baseCommitOverride: String? = rootProject.findProperty(BASE_COMMIT_ARG) as String?"
        errorLine2="                                                          ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/AffectedModuleDetector.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="            val baseCommitOverride: String? = rootProject.findProperty(BASE_COMMIT_ARG) as String?"
        errorLine2="                                                          ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/AffectedModuleDetector.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="    override val compileSdk: String by lazy { project.findProperty(COMPILE_SDK_VERSION).toString() }"
        errorLine2="                                                      ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*3}/androidx/build/AndroidXConfig.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="        project.findProperty(TARGET_SDK_VERSION).toString().toInt()"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*3}/androidx/build/AndroidXConfig.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="    project.findProperty(ALTERNATIVE_PROJECT_URL) as? String"
        errorLine2="            ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXGradleProperties.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="    return (project.findProperty(ENABLE_DOCUMENTATION) as? String)?.toBoolean() ?: true"
        errorLine2="                    ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXGradleProperties.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="fun Project.findBooleanProperty(propName: String) = (findProperty(propName) as? String)?.toBoolean()"
        errorLine2="                                                     ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXGradleProperties.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="                return checkNotNull(findProperty(name)) {"
        errorLine2="                                    ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXPlaygroundRootImplPlugin.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="        parseTargetPlatformsFlag(project.findProperty(ENABLED_KMP_TARGET_PLATFORMS) as? String)"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*3}/androidx/build/KmpPlatforms.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="            findProperty(DISABLE_COMPILER_DAEMON_FLAG)?.toString()?.toBoolean() == true"
        errorLine2="            ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/KonanPrebuiltsSetup.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="            val value = project.findProperty(STUDIO_TYPE)?.toString()"
        errorLine2="                                ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*3}/androidx/build/ProjectLayoutType.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="            val value = project.findProperty(STUDIO_TYPE)?.toString()"
        errorLine2="                                ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*3}/androidx/build/ProjectLayoutType.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="        val group = findProperty(&quot;group&quot;) as String"
        errorLine2="                    ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/VersionFileWriterTask.kt"/>
    </issue>

    <issue
        id="GradleProjectIsolation"
        message="Use providers.gradleProperty instead of findProperty"
        errorLine1="        val artifactId = findProperty(&quot;name&quot;) as String"
        errorLine2="                         ~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/VersionFileWriterTask.kt"/>
    </issue>

    <issue
        id="InternalAgpApiUsage"
        message="Avoid using internal Android Gradle Plugin APIs"
        errorLine1="import com.android.build.gradle.internal.lint.AndroidLintAnalysisTask"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/LintConfiguration.kt"/>
    </issue>

    <issue
        id="InternalAgpApiUsage"
        message="Avoid using internal Android Gradle Plugin APIs"
        errorLine1="import com.android.build.gradle.internal.lint.LintModelWriterTask"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/LintConfiguration.kt"/>
    </issue>

    <issue
        id="InternalAgpApiUsage"
        message="Avoid using internal Android Gradle Plugin APIs"
        errorLine1="import com.android.build.gradle.internal.lint.VariantInputs"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/LintConfiguration.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/buildInfo/CreateLibraryBuildInfoFileTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependencyConstraint"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/buildInfo/CreateLibraryBuildInfoFileTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.artifacts.ivyservice.projectmodule.ProjectComponentPublication"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/buildInfo/CreateLibraryBuildInfoFileTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.component.SoftwareComponentInternal"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/buildInfo/CreateLibraryBuildInfoFileTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/buildInfo/CreateLibraryBuildInfoFileTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.logging.slf4j.OutputEventListenerBackedLogger"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/FileLogger.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.logging.slf4j.OutputEventListenerBackedLoggerContext"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/FileLogger.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.time.Clock"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/FileLogger.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.component.external.model.DefaultModuleComponentIdentifier"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dackka/GenerateMetadataTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.component.SoftwareComponentInternal"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.component.UsageContext"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/MavenUploadHelper.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/metalava/RegenerateOldApisTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.api.internal.tasks.userinput.UserInputHandler"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/studio/StudioTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.service.ServiceRegistry"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/studio/StudioTask.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.logging.slf4j.OutputEventListenerBackedLogger"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/ToStringLogger.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.logging.slf4j.OutputEventListenerBackedLoggerContext"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/ToStringLogger.kt"/>
    </issue>

    <issue
        id="InternalGradleApiUsage"
        message="Avoid using internal Gradle APIs"
        errorLine1="import org.gradle.internal.time.Clock"
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/dependencyTracker/ToStringLogger.kt"/>
    </issue>

    <issue
        id="WithPluginClasspathUsage"
        message="Avoid usage of GradleRunner#withPluginClasspath, which is broken. Instead use something like https://github.com/autonomousapps/dependency-analysis-gradle-plugin/tree/main/testkit#gradle-testkit-support-plugin"
        errorLine1="            .withPluginClasspath()"
        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/test/java/androidx/build/buildInfo/CreateLibraryBuildInfoFileTaskTest.kt"/>
    </issue>

    <issue
        id="WithTypeWithoutConfigureEach"
        message="Avoid passing a closure to withType, use withType().configureEach instead"
        errorLine1="        project.tasks.withType(AbstractTestTask::class.java) { task ->"
        errorLine2="                      ~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

    <issue
        id="WithTypeWithoutConfigureEach"
        message="Avoid passing a closure to withType, use withType().configureEach instead"
        errorLine1="        project.tasks.withType(Test::class.java) { task -> configureJvmTestTask(project, task) }"
        errorLine2="                      ~~~~~~~~">
        <location
            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXImplPlugin.kt"/>
    </issue>

</issues>
