Je construis un exemple de projet à partir d'Udacity. Cela fonctionnait bien jusqu'à maintenant, mais après la mise à niveau vers Android Studio 3.2.1, je suis confronté à l'erreur de construction ci-dessous.
Version Gradle: 4.6
Lien vers le projet: 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
Comment puis-je le réparer?
google()
au niveau racine build.gradle
buildscript {
repositories {
google() // <--here
jcenter()
}
}
allprojects {
repositories {
google() // <-- here
jcenter()
}
}
et voir la magie - l'erreur est partie.
La version du projet gradle
est assez ancienne:
classpath 'com.Android.tools.build:gradle:2.2.3'
Et vous utilisez Android Studio v3.2.1, mettez donc à jour la gradle
:
classpath 'com.Android.tools.build:gradle:3.2.0' // or 3.2.1 maybe
Comme vous pouvez le constater, il cherchait des paquets dans:
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
Ce qui signifie que vous avez probablement oublié d'ajouter google()
en tant que référentiel de niveau supérieur. Il suffit d'ajouter google()
dans vos référentiels dans votre racine build.gradle
.
Pour résoudre ce problème
Tout d'abord, téléchargez le fichier Jar manquant à partir du lien ci-dessous. Je vois qu'il vous manque la version 3.2.1-4818971
Basculez votre structure de dossiers d'Android vers Projet.
Naviguez maintenant vers le dossier libs à l'intérieur du dossier app-build. (Si le dossier libs n'existe pas, vous pouvez le créer en cliquant avec le bouton droit de la souris sur le dossier de l'application - sélectionnez Nouveau - sélectionnez Répertoire.)
Collez le fichier download.jar dans le dossier libs. Cliquez avec le bouton droit sur le fichier jar et en bas, cliquez sur Ajouter en tant que bibliothèque. Cela permettra d’ajouter des fichiers d’implémentation ('libs/nom_bibliothèque.jar') dans build.gradle [Vous n’avez pas à entrer ceci manuellement dans votre fichier de construction].
Tout devrait bien se passer après la synchronisation ci-dessus . Voici le lien source vers cette solution: https://developer.Android.com/studio/command-line/aapt2#download_aapt2
Faites-moi savoir si vous rencontrez d'autres problèmes tout en faisant ce qui précède.
Oui, comme l'a dit d4rkcon, téléchargez https://dl.google.com/dl/Android/maven2/com/Android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows. jar Mais vous pouvez faire plus simple - il suffit de placer ce fichier dans le répertoire où Andoid Studio essaie de le trouver. Si vous ne possédez pas de répertoires tels que /tools/build/aapt2/3.2.1-4818971/ dans le dossier AndroidSDK, créez-les, puis placez le fichier aapt2-3.2.1-4818971-windows.jar dans.
Ajouter un référentiel Google dans votre build.gradle (Projet: xxxxx)
allprojects {
repositories {
google()
}
}
Changez votre build.gradle comme suit.
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'
}
effacer le cache de gradles
rm -rf $HOME/.gradle/caches/
et resynchroniser pour télécharger toutes les dépendances
ajouter google () sur votre script de construction> référentiels ajouter google sur tous les projets> référentiels
utilisez la mise en œuvre en remplacement du mot clé de compilation, également sur votre 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'