Android CI 构建: 找不到 aapt2-proto.jar

51

我在Bitbucket CI服务器上遇到了构建失败的问题:

> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.jar

我搜索了一些相似的问题,它们都说 Google Maven 存储库丢失了,但是我没有丢失。顶级构建文件:

buildscript {

    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin"
    }
}

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

我的应用级别构建文件:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        google()
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.26.1'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
    google()
    mavenCentral()
}

5
在浏览器中打开 https://jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.jar 后发现404错误,可能是JCenter出了问题或者该库被移动了。 - estn
请在此处查看:https://stackoverflow.com/a/52979557/8034839 - shizhen
3个回答

69

尝试将google()方法移动到其执行块的顶部。

也许是搜索仓库的顺序导致了问题。

因此,例如,更改为:

repositories {
  maven { url 'https://maven.fabric.io/public' }
  google() // from here
  mavenCentral()
}

变为:

repositories {
  google() // to here
  maven { url 'https://maven.fabric.io/public' }
  mavenCentral()
}

如果这并没有帮助,尝试将google()方法的调用更改为:

maven {
  url 'https://maven.google.com/'
  name 'Google'
}

更新

如果以上方法都没有帮助,请确保您的 gradle 版本至少为 3.0.0

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

并且 gradle-wrapper 版本至少为 4.1:

通常位于这里:project_name/gradle/wrapper/gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

来源


配置根项目“XXXXXXXXXx”时出现问题。
无法解决配置“:classpath”的所有工件。
找不到aapt2-proto.jar(com.android.tools.build:aapt2-proto:0.3.1)。
在以下位置搜索: https://plugins.gradle.org/m2/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.jar
- Viswanath Kumar Sandu
2
这个方法结合将Gradle包装器版本升级到4.10.2对我起了作用。 - Dean
将google()移动到Android Studio 3.2.1之前的maven和jcenter之前,为我解决了这个问题。 - Matt from vision.app

22

将gradle-wrapper.properties中的Gradle wrapper升级为gradle-4.10.2-all.zip,问题得到了解决。


5
将Gradle Wrapper的版本从4.6升级到4.10.2就解决了我的问题! - Dean
升级Gradle成功了,但是也必须将kotlin-stdlib-common更新到1.3.0-rc-198(之前是131)。 - harry248
升级包装器版本会出现错误:无法解析:org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0-rc-131。如何修复此问题? - png

0

更新 Gradle 版本

从 Android Gradle 发布页面,您可以检查适用于 Gradle 插件的兼容版本。

yourProject/gradle/wrapper 目录下的 gradle-wrapper.properties 文件中更新 Gradle 版本。

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.0-all.zip
Plugin version  Required Gradle version

   2.3.0+             3.3+
   3.0.0+             4.1+
   3.1.0+             4.4+
请注意顺序很重要。google() 应该是任何插件库的首选。
对于 Android Studio 版本 > 3.0
buildscript {
  repositories {
      google() // move it to top
      jcenter()
  }
  dependencies {
      classpath 'com.android.tools.build:gradle:3.2.1' // your Android Studio Version
  }
} 
allprojects {
  repositories {
      google() // move it to top
      jcenter()
}

自 Android Studio 版本 3.0 或更高版本开始,需要使用 google() 插件。

对于 Android Studio 版本 < 3.0

buildscript {
  repositories {
      maven {
       url 'https://maven.google.com/'
       name 'Google'
      }
      jcenter()
  }
  dependencies {
      classpath 'com.android.tools.build:gradle:2.3.0' // your Android Studio Version
  }
} 
allprojects {
  repositories {
      maven {
       url 'https://maven.google.com/'
       name 'Google'
      }
      jcenter()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接