【问题标题】:Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2)找不到 lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2)
【发布时间】:2018-10-23 23:08:44
【问题描述】:

我的 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

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

  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()
    }
}

这可能是相关的,也可能是不相关的,尽管我确实觉得它很奇怪,但在我看来,它为 其他 依赖项成功下载了相同的东西:

$ 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

【问题讨论】:

    标签: react-native gradle android-gradle-plugin


    【解决方案1】:

    在我的例子中,它与 Fabric 模块有关,

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

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

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

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

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

    【讨论】:

    【解决方案2】:

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

    "./gradlew build --refresh-dependencies"
    

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

    【讨论】:

      【解决方案3】:

      正如您所说,通常的解决方案是将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'
          }
      }
      

      你可能在谷歌上面有jcenter()google()

      是一样的
       maven {
                  url 'https://maven.google.com/'
                  name 'Google'
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-29
        • 2019-03-27
        • 2019-05-04
        • 2018-10-09
        • 2021-07-05
        • 2018-04-08
        • 1970-01-01
        相关资源
        最近更新 更多