Android CI 构建:找不到 aapt2-proto.jar
Posted
技术标签:
【中文标题】Android CI 构建:找不到 aapt2-proto.jar【英文标题】:Android CI build: Could not find aapt2-proto.jar 【发布时间】:2019-03-27 09:56:38 【问题描述】:我在 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()
【问题讨论】:
在浏览器中打开 jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.3.1/… 会出现 404,它会损坏 jcenter / 库被移动了吗? 也可以在这里查看:***.com/a/52979557/8034839 【参考方案1】:尝试将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
Source
【讨论】:
配置根项目“XXXXXXXXXx”时出现问题。 > 无法解析配置“:classpath”的所有工件。 > 找不到 aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1)。在以下位置搜索:plugins.gradle.org/m2/com/android/tools/build/aapt2-proto/0.3.1/… 这与将 gradle 包装器版本升级到 4.10.2 相结合对我有用 在 maven 和 jcenter 在 Android Studio 3.2.1 上为我解决它之前,将 google() 移动到最顶端。【参考方案2】:将 Gradle 包装器(在 gradle-wrapper.properties 中)升级到 gradle-4.10.2-all.zip 解决了我的问题。
【讨论】:
从 gradle wrapper 版本 4.6 升级到 4.10.2 对我有用! 升级 Gradle 有效,但也必须将 kotlin-stdlib-common 更新为 1.3.0-rc-198(之前为 131)。 升级包装器版本给出 --- 无法解决:org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0-rc-131 --- 错误。如何解决这个问题【参考方案3】:更新 Gradle 版本
您可以从 android gradle release page 检查您的 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 版本
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()
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()
【讨论】:
以上是关于Android CI 构建:找不到 aapt2-proto.jar的主要内容,如果未能解决你的问题,请参考以下文章
GitLab CI/CD 管道在构建 Debian 包时找不到 GCC