Eh bien, j'ai commencé une migration vers AndroidX à partir d'un projet d'un an (intact depuis lors) et j'ai des problèmes avec les ressources et la construction de Gradle. Je suis complètement perdu avec les nouveaux espaces de noms, j'ai changé certains d'entre eux, j'ai mis à niveau tout ce que AndroidStudio m'a dit, mais je ne reconnais toujours pas les choses sur mon projet. Je vais coller les deux notes ici et je mettrai l'erreur ci-dessous.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Module
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "com.example.usuario.tm"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test:runner:1.1.0-alpha3"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha3', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.Android.material:material:1.0.0'
implementation 'com.google.gms:google-services:4.1.0'
implementation 'com.google.Android.gms:play-services-auth:16.0.1'
testImplementation 'junit:junit:4.12'
}
}
apply plugin: 'com.Android.application'
apply plugin: 'maven'
Erreur
Android resource linking failed
Output: C:\Users\Xrless\Desktop\Programing\TN\TM\app\src\main\res\layout\activity_principal.xml:34: error: attribute Android:style not found.
error: failed linking file resources.
Command: C:\Users\Xrless\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\cf456f090f0725907522fb6d2bec3322\aapt2-3.2.1-4818971-windows\aapt2.exe link -I\
C:\Users\Xrless\AppData\Local\Android\Sdk\platforms\Android-28\Android.jar\
--manifest\
C:\Users\Xrless\Desktop\Programing\TN\TM\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
-o\
C:\Users\Xrless\Desktop\Programing\TN\TM\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
-R\
@C:\Users\Xrless\Desktop\Programing\TN\TM\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
--auto-add-overlay\
--Java\
C:\Users\Xrless\Desktop\Programing\TN\TM\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
--custom-package\
com.example.usuario.tm\
-0\
apk\
--output-text-symbols\
C:\Users\Xrless\Desktop\Programing\TN\TM\app\build\intermediates\symbols\debug\R.txt\
--no-version-vectors
Daemon: AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
Il y a une erreur dans votre activity_principal.xml. Essayer de changer:
Android: style
à
style
Vous devez également ajouter
Android.useAndroidX = true
dans votre fichier gradle.properties si vous souhaitez utiliser la bibliothèque androidX au lieu de la bibliothèque de support.
Dans Android Studio 3.2+, vous pouvez utiliser Refactor | Migrez vers AndroidX pour mettre à niveau un projet. Pour en savoir plus, allez ici .
J'ai passé une nuit entière à essayer de résoudre ce problème après la migration vers androidX. Voici les quelques choses que j'ai faites pour que cela fonctionne:
Dans gradle.property:
dex.force.jumbo=true
Android.useAndroidX=true
Android.enableJetifier=true
Android.enableD8=true
Android.enableR8.libraries = false
Android.enableR8 = false
Dans build.gradle:
defaultConfig {
...
compileSdkVersion 28
…
}
//Use JDK1.8 and make sure the same is well specified in your gradle file.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
//Exclude Guava libraries
...
configurations {
...
implementation.exclude group: 'com.google.guava'
}
//Make sure your firebase and google libraries are all updated
...
implementation 'com.google.guava:guava:27.0.1-Android'
...
Après tout cela, peu de choses habituelles:
rm -rf $HOME/.gradle/caches/
)Pensez que tout devrait être trouvé après cela. J'espère que cela vous fera gagner du temps.
Bien que la réponse acceptée soit correcte. Mais pour aider d'autres gars, dans des projets complexes, nous avons trouvé ce type d'erreurs que nous devons corriger manuellement. J'ai écrit un article complet sur le sujet, en particulier les correctifs manuels. ltimate Guide to Migrate Android Project to AndroidX .
Android.useAndroidX = true
Projet de synchronisation
Cela fonctionne parfaitement.