Build-Fehler nach dem Upgrade von Android Studio 3.2.1


75

Ich baue ein Beispielprojekt von Udacity. Dies hat bis jetzt gut funktioniert, aber nach dem Upgrade auf Android Studio 3.2.1 tritt der folgende Build-Fehler auf.

Gradle-Version: 4.6

Projektlink: 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

Wie kann ich es reparieren?


Willkommen bei SO. Bitte fügen Sie weitere Details dazu hinzu, welche Gradle-Version Sie verwenden und welche Repositorys Sie in Ihrem Projekt haben, indem Sie möglicherweise das root build.gradle in Ihre Frage einfügen. Das wäre toll.
13 ઽ ૯ ท

@Mohsen Ich habe den Link zum Udacity-Projekt hinzugefügt.

Der Gradle scheint ziemlich alt zu sein : classpath 'com.android.tools.build:gradle:2.2.3'. Haben Sie versucht classpath 'com.android.tools.build:gradle:3.2.1'oder die Abhängigkeiten aktualisiert? Verwenden Sie auch implementationanstelle von compile.
13 ઽ ૯ ท

Tat dies. Immer noch der gleiche Fehler.

3
Eine Lösung gefunden: stackoverflow.com/a/50290877/7103964 Das Hinzufügen von Google Repo zu allprojects hat mein Problem behoben.

Antworten:


164

Für Android Studio 3.2.1 Update

Fügen Sie einfach die google()Root-Ebene hinzubuild.gradle

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

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

und sehen Sie die Magie - Fehler ist weg.


4
Ich hatte jcenter()und fügte google()danach hinzu , um den Fehler zu beheben.
Daniel

2
Vielen Dank für die Erwähnung, wo genau "google ()"
Meenohara

2
Ausgezeichnete Antwort
Fatih TAN

1
Ok, das hat es wirklich behoben, aber kann jemand erklären warum?
Rodrigo Recio

1
Darf ich fragen, woher in aller Welt wusstest du davon? IOW, wo kann ich solche Dinge auch lernen?
Lior

8

Die Projektversion gradleist ziemlich alt:

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

Wenn Sie Android Studio v3.2.1 verwenden, aktualisieren Sie Folgendes gradle:

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

Wie Sie sehen können, wurde nach einigen Paketen gesucht in:

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

Das heißt, Sie haben wahrscheinlich vergessen, google()das Repository der obersten Ebene hinzuzufügen . Einfach hinzufügengoogle()

zu Ihren Repositories in Ihrer Wurzel build.gradle.


6

Um dies zu lösen

Laden Sie zunächst die fehlende Jar-Datei über den unten stehenden Link herunter. Ich sehe, Sie vermissen Version 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

Wechseln Sie Ihre Ordnerstruktur von Android zu Project.

Ordnerstruktur

Navigieren Sie nun zum Ordner libs im Ordner app - build. (Wenn der libs-Ordner nicht vorhanden ist, können Sie ihn erstellen, indem Sie mit der rechten Maustaste auf den App-Ordner klicken - Neu auswählen - Verzeichnis auswählen.)

LibsFolder

Fügen Sie die Datei downloaded.jar in den Ordner libs ein. Klicken Sie mit der rechten Maustaste auf die JAR-Datei und unten auf Als Bibliothek hinzufügen. Dadurch wird das Hinzufügen von Implementierungsdateien ('libs / library_name.jar') in build.gradle [Sie müssen dies nicht manuell in Ihre Build-Datei eingeben] übernommen.

AddAsLibrary

Nach dem Synchronisieren sollte nach dem Ausführen der obigen Schritte alles in Ordnung sein. Hier ist der Quelllink zu dieser Lösung: https://developer.android.com/studio/command-line/aapt2#download_aapt2

Lassen Sie mich wissen, wenn Sie dabei auf andere Probleme stoßen.


3
Warum bündelt Google dies nicht in seinem Repo? Android Dev Exp ist das Schlimmste, das ich hatte
Mike

6

Ja, wie d4rkcon sagte Download https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Aber Sie können es einfacher machen - legen Sie diese Datei einfach in ein Verzeichnis, in dem Andoid Studio versucht, sie zu finden. Wenn Sie keine Verzeichnisse wie /tools/build/aapt2/3.2.1-4818971/ im AndroidSDK-Ordner haben, erstellen Sie diese einfach und fügen Sie die Datei aapt2-3.2.1-4818971-windows.jar ein.


Danke, das hat bei mir funktioniert. Ich musste 3 Ebenen von Verzeichnissen hinzufügen. Es gibt auch 3 Varianten der JAR-Datei. Auf einem Mac ist es: dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/… (ersetzen Sie Windows in der JAR-Datei durch OSX oder Linux)
Vicky T

3

Fügen Sie ein Google-Repository in Ihr build.gradle ein (Projekt: xxxxx)

allprojects {
    repositories {
        google()
    }
}

2

Gradle-Cache löschen

rm -rf $HOME/.gradle/caches/

und erneut synchronisieren, um alle Abhängigkeiten herunterzuladen


1
Ja, dies ist die Lösung. Nach dem Upgrade von gradle müssen alle Abhängigkeiten erneut synchronisiert werden, damit dieser Befehl erfolgreich ausgeführt werden kann: react-native run-android
novonimo

1

Ändern Sie Ihr build.gradle wie folgt.

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

0

Fügen Sie google () zu Ihrem Build-Skript hinzu> Repositorys. Fügen Sie Google zu allprojects hinzu.> Repositorys

Verwenden Sie die Implementierung als Ersatz für das Schlüsselwort compile, auch in Ihrem Dateibaum.

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'

0

Für Android Studio 3.6.3 Update: Durch einfaches Hinzufügen eines Google Maven-Tags in Buildscript und aller Projekt-Repositorys in der Datei build.gradle der Projektdatei wird das Problem behoben.

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
}

Würde es Ihnen etwas ausmachen, Ihre Antwort mit zusätzlichen Informationen zu aktualisieren? Was unterscheidet sich in dieser Konfiguration von anderen früheren Antworten? Funktionieren die vorherigen Ansätze in Android Studio 3.6.3 nicht? Welche spezifischen Teile Ihrer Konfiguration sind der Schlüssel zur Lösung? Sind es hauptsächlich die maven {}Konfigurationen?
Jeremy Caney

Ja, andere Antworten lösen keine Probleme mit dem neuesten Android Studio-Update.
Abeni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.