Ошибки сборки после обновления Android Studio 3.2.1

Я создаю образец проекта от 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

Как я могу это исправить?

Добро пожаловать в SO. Пожалуйста, добавьте более подробную информацию о том, какую версию gradle вы используете и какие репозитории у вас есть в вашем проекте, возможно, добавив корневой build.gradle в свой вопрос? Это было бы прекрасно.

ʍѳђઽ૯ท 13.10.2018 08:07

@Mohsen Я добавил ссылку на проект Udacity.

anon 13.10.2018 08:13

Градл кажется довольно старым: classpath 'com.android.tools.build:gradle:2.2.3'. Вы пробовали classpath 'com.android.tools.build:gradle:3.2.1' или обновление зависимостей? Также используйте implementation вместо compile.

ʍѳђઽ૯ท 13.10.2018 08:17

Сделал это. Все еще та же ошибка.

anon 13.10.2018 08:22

Проблема устранена после обращения к stackoverflow.com/a/50290877/7103964 Спасибо @Mohsen

anon 13.10.2018 08:30

Ну, я думал то же самое, так как версия gradle была довольно старой. Однако я добавлю пояснение в качестве ответа.

ʍѳђઽ૯ท 13.10.2018 08:33

Нашел решение: stackoverflow.com/a/50290877/7103964 Добавление репозитория Google во все проекты устранило мою проблему.

anon 13.10.2018 08:28
75
7
60 383
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Версия проекта 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.

Чтобы решить эту проблему

Сначала загрузите недостающий файл 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

Теперь перейдите в папку libs внутри приложения - папку сборки. (Если папка libs не существует, вы можете создать ее, щелкнув правой кнопкой мыши папку приложения - выберите New - выберите Directory.)

LibsFolder

Вставьте загруженный файл .jar в папку libs. Щелкните правой кнопкой мыши файл jar и внизу щелкните Добавить как библиотеку. Это позаботится о добавлении файлов реализации ('libs / имя_библиотеки.jar') в build.gradle [вам не нужно вручную вводить это в свой файл сборки].

AddAsLibrary

Все должно быть в порядке, как только вы выполните синхронизацию после выполнения описанных выше действий. Вот исходная ссылка на это решение: https://developer.android.com/studio/command-line/aapt2#download_aapt2

Сообщите мне, если у вас возникнут другие проблемы при выполнении вышеуказанного.

Почему Google не включает это в свое репо? Android dev exp - худшее, что у меня было

mike 24.10.2018 15:15

Ага, как сказал 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 пытается его найти. Если у вас нет таких каталогов, как /tools/build/aapt2/3.2.1-4818971/ в папке AndroidSDK, просто создайте их, а затем поместите файл aapt2-3.2.1-4818971-windows.jar в.

Спасибо, у меня это сработало. Пришлось добавить 3 уровня каталогов. Также существует 3 разновидности файла jar. На Mac это: dl.google.com/dl/android/maven2/com/android/tools/build/aapt‌ 2 /… (замените osx или linux на окна в файле jar)

Vicky T 19.10.2018 22:55
Ответ принят как подходящий

Для Android Studio 3.2.1 обновить

Просто добавьте google() в корневой уровень build.gradle

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

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

и увидите волшебство - ошибки больше нет.

спасибо, почему в моем build.gradle есть jcenter ()? Я добавляю google (), и он работает.

lostomato 02.11.2018 16:14

У меня был jcenter(), а потом я добавил google(), чтобы исправить ошибку.

Daniel 06.11.2018 19:28

Порядок @Daniel, как правило, не имеет большого значения, но библиотеки Google должны быть указаны первыми, поскольку они более важны для создания ваших приложений.

OneCricketeer 03.12.2018 15:31

Спасибо, что указали, где именно добавить "google ()"

Meenohara 28.12.2018 04:47

Отличный ответ

Fatih TAN 03.01.2019 09:40

Хорошо, это действительно исправило это, но может кто-нибудь объяснить, почему?

Rodrigo Recio 24.01.2019 18:48

Могу я спросить, откуда вы об этом узнали? IOW, где я тоже могу научиться подобным вещам?

Lior 28.01.2019 11:37

Измените свой 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'
}

Добавьте репозиторий Google в свой build.gradle (Project: xxxxx)

allprojects {
    repositories {
        google()
    }
}

добавьте google () в свой скрипт сборки> репозитории добавить гугл во все проекты> репозитории

использовать реализацию как замену ключевого слова compile, также на вашем файловом дереве.

БЫВШИЙ.

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'

очистить кеш Gradle

rm -rf $HOME/.gradle/caches/

и выполнить повторную синхронизацию, чтобы загрузить все зависимости

да, это решение, после обновления Gradle необходимо повторно синхронизировать все зависимости для успешного выполнения этой команды: response-native run-android

novonimo 26.02.2019 15:48

Для обновления Android Studio 3.6.3: просто добавление тега google maven в buildscript и всех репозиториев проектов в файл 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
}

Не могли бы вы дополнить свой ответ дополнительной информацией? Чем отличается эта конфигурация от других, предыдущих ответов? Предыдущие подходы не работают в Android Studio 3.6.3? Какие конкретные части вашей конфигурации являются ключевыми для решения? Это в первую очередь конфигурации maven {}?

Jeremy Caney 19.05.2020 21:43

да, другие ответы не решают проблемы с последним обновлением студии Android.

Abeni 19.05.2020 21:59

Другие вопросы по теме