Android Studio 3.2.1升级后的构建错误

我正在 Udacity 建立一个样本项目。到目前为止,这个工具运行良好,但是在升级到 Android Studio 3.2.1之后,我面临着下面的构建错误。

等级版本: 4.6

项目链接: https://github.com/udacity/ud851-Sunshine/tree/student/S02.02-Solution-Menus

Could not find com.android.tools.build:aapt2:3.2.1-4818971**. Searched in the following locations:
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Required by:
project :app

我该怎么补救?

60828 次浏览

gradle项目版本已经很老了:

classpath 'com.android.tools.build:gradle:2.2.3'

你正在使用 Android Studio v3.2.1,所以,更新 gradle:

classpath 'com.android.tools.build:gradle:3.2.0' // or 3.2.1 maybe

另外,正如你所看到的,它正在寻找一些软件包:

file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom

这意味着您可能忘记添加 google()作为顶级存储库

到根 build.gradle中的存储库。

解决这个问题

首先从下面的链接下载丢失的 Jar 文件。我看到你丢失了版本3.2.1-4818971

Https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar

将文件夹结构从 Android 切换到 Project。

FolderStructure

现在导航到 app-build 文件夹中的 libs 文件夹。(如果 libs 文件夹不存在,您可以通过右键单击 app 文件夹来创建它-选择 New-select Directory。)

LibsFolder

将 downloaded.jar 文件粘贴到 libs 文件夹中。右键单击 jar 文件,在底部单击 Add as library。这将负责在 build.gradle 中添加实现文件(‘ libs/library _ name.jar’)[您不必在构建文件中手动输入此文件]。

AddAsLibrary

一切都应该是好的,一旦你同步后,做了以上。 下面是这个解决方案的源代码链接: < a href = “ https://developer.android.com/Studio/command-line/aapt2 # download _ aapt2”rel = “ norefrer”> https://developer.android.com/studio/command-line/aapt2#download_aapt2

如果您在做上述工作时遇到其他问题,请告诉我。

是的,就像 d4rkcon 说的那样,下载 https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar 但是你可以做得更简单——只需把这个文件放到 AndoidStudio 试图找到它的目录中。如果在 AndroidSDK 文件夹中没有像/tools/build/aapt2/3.2.1-4818971/这样的目录,只需创建它们,然后将 aapt2-3.2.1-4818971-windows.jar 文件放入。

对于 Android Studio 3.2.1更新

只需在根级别 build.gradle中添加 google()

buildscript {
repositories {
google()   //  <--here
jcenter()
}
}


allprojects {
repositories {
google()   //  <-- here
jcenter()
}
}

看到魔法错误消失了。

改变你的构建。

android {
compileSdkVersion 26
buildToolsVersion "28.0.3"


defaultConfig {
applicationId "your package name here"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}


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

在 build.gradle 中添加 Google 存储库(项目: xxxxx)

allprojects {
repositories {
google()
}
}

在你的构建脚本 > 存储库中添加 google () 添加谷歌在所有项目 > 仓库

用实现代替编译关键字, 也在你的鱼柳上。

前男友。

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})


implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-v4:25.3.1'

透明梯级缓存器

rm -rf $HOME/.gradle/caches/

并重新同步以下载所有依赖项

对于 Android Studio 3.6.3更新: 只需在 buildscript 中添加 google maven 标签,并在 build.gradle 文件中添加所有项目存储库即可解决这个问题。

buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'


}
}


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


task clean(type: Delete) {
delete rootProject.buildDir
}