在Android Studio 3.2.1升级后构建错误

san*_*kar 72 android android-build android-studio android-gradle-plugin jcenter

我正在从Udacity建立一个示例项目.到目前为止工作正常,但升级到Android Studio 3.2.1后,我面临下面的构建错误.

Gradle版本: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
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Nik*_*dva 164

适用于Android Studio 3.2.1更新

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

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

allprojects {
    repositories {
        google()   //  <-- here
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

并看到魔术 - 错误消失了.

  • 这应该是公认的答案.谢啦! (6认同)
  • 我有`jcenter()`并且之后添加了`google()`来修复错误. (3认同)
  • 谢谢你,应该被接受!你是怎么发现的? (2认同)
  • 感谢您提到添加“google()”的确切位置 (2认同)
  • 优秀的回答 (2认同)

ʍѳђ*_*ઽ૯ท 8

项目gradle版本很旧:

classpath 'com.android.tools.build:gradle:2.2.3'
Run Code Online (Sandbox Code Playgroud)

并且您使用的是Android Studio v3.2.1,请更新gradle:

classpath 'com.android.tools.build:gradle:3.2.0' // or 3.2.1 maybe
Run Code Online (Sandbox Code Playgroud)

此外,正如您所看到的,它正在寻找一些包:

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
Run Code Online (Sandbox Code Playgroud)

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

到根目录中的存储库build.gradle.

  • 添加谷歌()解决了问题 (2认同)

d4r*_*con 6

为了解决这个问题

首先从下面的链接下载丢失的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 - 选择Directory.)

LibsFolder

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

AddAsLibrary

完成上述操作后,一旦您同步,一切都应该没问题.以下是此解决方案的源链接:https://developer.android.com/studio/command-line/aapt2#download_aapt2

如果您在执行上述操作时遇到任何其他问题,请与我们联系.

  • 为什么Google不将其捆绑在他们的仓库中?Android dev exp是我遇到过的最糟糕的事情 (3认同)

小智 6

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