找不到lint-gradle-api.jar(com.android.tools.lint:lint-gradle-api:26.1.2)

时间:2018-10-23 23:08:45

标签: react-native gradle android-gradle

我的React Native构建突然失败并出现错误,尽管一天前工作得很好,并且没有看起来相关的更改。

FAILURE: Build failed with an exception.

* What went wrong: A problem occurred configuring project ':react-native-document-scanner'.
> Could not resolve all artifacts for configuration ':react-native-document-scanner:classpath'.
   > Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

类似的问题之前已经问过几次,但是通常的解决方案是在google()部分中添加repositories。但是

  1. 我们的repositories部分已经包含google()
  2. google()已经出现在jcenter()之前

来自build.gradle的摘要:

buildscript {
    repositories {
        // ...
        google()
        maven { url 'https://maven.google.com' }
        mavenLocal()
        mavenCentral()
        maven { url "https://jitpack.io" }
        jcenter()
    }
}

// ...

allprojects {
    repositories {
        // ...
        google()
        mavenLocal()
        mavenCentral()
        maven { url "https://jitpack.io" }
        jcenter()
    }
}

它可能相关也可能不相关,尽管我当然觉得很奇怪,但在我看来,它似乎可以成功地为 other 依赖项下载相同的东西:

$ ls ~/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/*
/home/petter/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/8c54aedfe9da66e64402de04883cee083c127a3b:
lint-gradle-api-26.1.2.jar

/home/petter/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/f68c47a57523ed87b225532b98f2dd2ece9552bb:
lint-gradle-api-26.1.2.pom

3 个答案:

答案 0 :(得分:2)

就我而言,它与Fabric模块有关,

我导入的Fabric模块的版本是0.5.2(也有问题0.5.1)

我解决了此问题,将Fabric模块的版本从0.5.2降级到0.5.0

构建成功后,将在.gradle / ..中创建.jar文件。

所以我可以再次使用0.5.2版本,

我认为它可能与模块的版本有关

答案 1 :(得分:1)

在您的react-native项目的android文件夹中运行以下命令:

"./gradlew build --refresh-dependencies"

这样,您可以在build.gradle中找到哪个节点模块有问题。 我发现此问题是由bu react-native-share模块引起的。所以我将package.json中的版本更新为1.1.3,以实现react-native-share。 另一种选择是更新/ node-modules / react-native-share / android /中的build.gradle文件,并将google()移至jcenter()之上

答案 2 :(得分:0)

正如您所说,通常的解决方案是将google()添加到存储库部分。这实际上在这里也适用。 您只需要转到node_modules-> react-native-document-scanner-> android-> build.gradle 在那里,您需要修改buildscript部分,如下所示:

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

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

您可能在Google上方有jcenter()google()

是一回事
 maven {
            url 'https://maven.google.com/'
            name 'Google'
        }