找不到 com.android.tools.lint:lint-gradle Android Studio 3

Could not find com.android.tools.lint:lint-gradle Android Studio 3

我已经将 Android Studio 更新到 3.0,现在收到了很多问题.. 现在停止了这样的问题:

Could not resolve all files for configuration ':applib:_lintClassPath'.
> Could not find com.android.tools.lint:lint-gradle:26.1.0-alpha01.
  Searched in the following locations:
      file:/Users/anwender/Library/Android/sdk/extras/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.pom
      file:/Users/anwender/Library/Android/sdk/extras/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.jar
      file:/Users/anwender/Library/Android/sdk/extras/google/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.pom
      file:/Users/anwender/Library/Android/sdk/extras/google/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.jar
      file:/Users/anwender/Library/Android/sdk/extras/android/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.pom
      file:/Users/anwender/Library/Android/sdk/extras/android/m2repository/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.jar
      https://jcenter.bintray.com/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.pom
      https://jcenter.bintray.com/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.jar
      https://jitpack.io/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.pom
      https://jitpack.io/com/android/tools/lint/lint-gradle/26.1.0-alpha01/lint-gradle-26.1.0-alpha01.jar
      file:/Users/anwender/dev/project/dk_shopping_checklist/augmented/libs/lint-gradle-26.1.0-alpha01.jar
      file:/Users/anwender/dev/project/dk_shopping_checklist/augmented/libs/lint-gradle.jar
  Required by:
      project :applib

有人知道问题出在哪里吗?

Gradle.build:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 26
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:+'
}

我正在使用最新的 gradle 版本:"gradle-4.2.1-all.zip"。

在我看来,您似乎缺少 google() 存储库以获取依赖项。

这是您要查找的 pom 文件的 link:https://dl.google.com/dl/android/maven2/com/android/tools/testutils/26.1.0-alpha01/testutils-26.1.0-alpha01.pom

如果您运行对使用旧版 Android Studio 创建的项目执行 lint,则可能会遇到此错误。

要解决此问题,对于您想要 运行 lint 的每个项目,将 Google 的 Maven 存储库包含在顶级 build.gradle 文件中,如图所示下面:

allprojects {
    repositories {
        // The order in which you list these repositories matter.
        google()
        jcenter()
    }
}

我通过添加 https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api 解决了这个问题 回购 build.gradle:

repositories {
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    jcenter()
    maven {
        url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
    }
}

我已经将当前的 gradle 版本(3.3.2 更改为 3.2.1)从全局 build.gradle 文件.

buildscript {
 repositories {
    google()
    jcenter()
    maven { url 'https://maven.google.com' }
 }

 dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
 }
}

allprojects {
 repositories {
    google()
    jcenter()
    maven { url 'https://maven.google.com' }
 }
}

然后点击屏幕右上角的同步gradle按钮。

将 google() 添加到您的 gradle 如果你再次遇到这个问题,请不要向你的 gradle 添加 linter 禁用器,这是一个访问错误问题,我在 react-native 上遇到了这个问题,在对一些命令使用 sudo 命令后,只需重置你的代码访问然后再次释放 例如 mac

sudo chmod -R 777 <project-root-folder-name>

将以下代码添加到您的 build.gradle(模块)以跳过错误

lintOptions {
        abortOnError false
}

试试这个,

文件 -> 设置 -> 构建、执行、部署 -> Gradle -> Android Studio -> Select -启用嵌入式 Maven 存储库 - 应用。

我有这个问题, 通过以下行解决

buildscript {
ext.kotlin_version = '1.3.60'

repositories {
    google()
    jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.4.1' //3.4.2, 3.4.1^, 2.3.3^
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
    classpath 'com.google.gms:google-services:4.3.3' 
}
}
//################################################################################
allprojects {
    repositories
            {
                google()
                jcenter()
                mavenCentral()
                maven { url "https://dl.google.com/dl/android/maven2/" }
                maven { url "http://jcenter.bintray.com/" }
                maven { url 'https://plugins.gradle.org/m2/'}
                maven { url "https://maven.google.com" }
                maven { url 'https://jitpack.io' }
                maven { url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api' }

                flatDir {
                    dirs 'libs'
                }
            }
}
//################################################################################
task clean(type: Delete) {
    delete rootProject.buildDir
}

另一种选择是

./gradlew -x:app:lintVitalRelease assemble

引用Gradle文档:

从执行中排除任务

您可以使用 -x 或 --exclude-task 命令行选项并提供要排除的任务的名称来排除正在执行的任务。

参考:https://docs.gradle.org/current/userguide/command_line_interface.html#sec:excluding_tasks_from_the_command_line

存档link:http://archive.is/TsPPJ#sec:excluding_tasks_from_the_command_line

只需评论 google 并同步项目

   repositories {
    google()
    jcenter()
   }

禁用离线模式并取消注释 google() 并再次同步...

我的情况是我通过将 gradle 版本从 3.6.3 降级来解决问题:

buildscript {
repositories {
    jcenter()
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.6.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
 }
}

到 3.4.2:

buildscript {
repositories {
    jcenter()
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

我的回答是针对所有已经在存储库中 google() 但仍然有相同错误的人

  1. 转到 android 工作室设置并搜索“HTTP 代理”并确保您没有在那里设置错误的代理。 (如果不确定,将其设置为自动检测代理设置)
  2. 关闭android工作室
  3. 转到 C:/Users/DESKTOP-NAME/ 并删除 .gradle 文件夹(是的,它是一个大文件夹,但不要害怕它只是保留所有版本现在不再需要的 gradle 个旧文件)
  4. 转到您的项目文件夹并删除 .gradle 文件夹和 app/build 文件夹(之前进行备份以防万一)
  5. 重新启动您的代理服务器或 VPN 提供商(如果您使用的话)并确保您的互联网连接正常。
  6. 打开 Android Studio 并等待构建成功(这需要更长的时间)。

不要注释掉 google(),同时应用上述解决方案:

repositories {
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    jcenter()
    google()
    maven {
        url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
    }
}

要解决依赖性问题,使用

总是有帮助的
./gradlew clean build --refresh-dependencies

就我而言,我收到了下一条消息:

- Variant 'runtimeElements' capability com.android.tools.lint:lint-api:30.0.2 declares a runtime of a library, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm':
          - Incompatible because this component declares a component compatible with Java 8 and the consumer needed a component compatible with Java 7
          - Other compatible attribute:
              - Doesn't say anything about its target Java environment (preferred optimized for standard JVMs)

所以,我对这种依赖的问题是我使用的是:

java {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

并且这个特定的依赖项需要 JavaVersion。VERSION_1_8 而不是。当我将其替换为

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

它开始工作了。