首页 文章

在Android Studio 3.2.1升级后构建错误

提问于
浏览
44

我正在从Udacity Build 一个示例项目 . 到目前为止工作正常,但升级到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

我该如何解决?

7 回答

  • 5

    项目 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() 作为顶级存储库 . 只需添加 google()

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

  • 1

    适用于Android Studio 3.2.1更新

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

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

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

  • 0

    是的,因为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文件放入 .

  • 93

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

    allprojects {
        repositories {
            google()
        }
    }
    
  • 7

    为了解决这个问题

    首先从下面的链接下载缺少的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

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

  • 2

    在您的构建脚本上添加google()>存储库在所有项目>存储库上添加google

    使用实现作为compile关键字的替换,也在您的filetree上 .

    EX .

    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'
    
  • 5

    更改build.gradle,如下所示 .

    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'
    }
    

相关问题