Problèmes et solutions rencontrés lors de la mise à niveau vers Android Studio3.0

Les problèmes et solutions rencontrés lors de la mise à niveau vers Android Studio3.0, Android Studio3.0 sont une grosse mise à jour cette fois. Après la mise à jour, j'ai constaté que la compilation avait en effet été grandement améliorée, ainsi que les derniers outils de débogage des erreurs.En bref, la nouvelle version de Google est toujours très sincère.

Les problèmes rencontrés

1 、 saveurDimensions

Journal des erreurs

Erreur: toutes les saveurs doivent maintenant appartenir à une dimension de saveur nommée. En savoir plus sur https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

Raison: gradle3.0 doit utiliser flavourDimensions pour l'empaquetage multi-version, modifiez comme suit:

android {
//…
defaultConfig {
//…
flavourDimensions "dimen"
}
}

Ensuite, effectuez les modifications correspondantes dans productFlavors

productFlavors {productA {
dimension "
dimen "} productB {dimension "dimen"}
}

Configurer plusieurs dimensions de saveur

android {
//…
defaultConfig {
//…
flavourDimensions "dimenA", "dimenB"
}
}
productFlavors {productA
{dimension "dimenA"}
productB {dimension "dimenB"}
productC {dimension "dimenA"}
}

2.apk nommé
journal des erreurs

Impossible de définir la valeur de la propriété en lecture seule 'outputFile' pour ApkVariantOutputImpl_Decorated {apkData = Main {type = MAIN, fullName = busDebug, filters = []}} de type com.android.build.gradle.internal.api.ApkVariantOutputImpl. Fichier ouvert

Le code précédent:

applicationVariants.all {variant ->
variant.outputs.each {output ->
def outputFile = output.outputFile
if (outputFile! = null && outputFile.name.endsWith ('. apk')) {
def fileName = "XXX- e fa u l t Co n fje g. v e r s i o n Co de - default C onfig. version C ode - {defaultConfig.versionName} - r e l e a s e Tje m e ( ) - release T ime () - {productFlavors.name [0]} "
if (variant.buildType.name == 'release') {
fileName + = '.apk'
} else if (variant.buildType.name == 'debug' ) {
fileName + = '_debug.apk'
} else {
fileName + = '_other.apk'
}
output.outputFile = nouveau fichier (outputFile.parent, fileName)
}
}
}

Remplacez gradle3.0 chacun par tout, output.outputFile par outputFileName, aucun nouveau fichier n'est nécessaire, le code modifié:

applicationVariants.all {variant ->
variant.outputs.all {
def fileName = "XXX- e fa u l t Co n fje g. v e r s i o n Co de - default C onfig. version C ode - {defaultConfig.versionName} - r e l e a s e Tje m e ( ) - release T ime () - {productFlavors.name [0]} "
if (variant.buildType.name == 'release') {
fileName + = '.apk'
} else if (variant.buildType.name == 'debug' ) {
fileName + = '_debug.apk'
} else {
fileName + = '_other.apk'
}
outputFileName = fileName
}
}

Il convient de noter que lorsque vous utilisez Build-> Generate Signed APK ..., le package apk généré sera placé dans un dossier nommé d'après le nom du canal

3.Les processeurs d'annotation doivent être déclarés explicitement maintenant.Veuillez les ajouter à la configuration annotationProcessor.

Journal des erreurs

Erreur: l'exécution a échoué pour la tâche «: app: javaPreCompilePreProductDebug».
Les processeurs d'annotations doivent maintenant être déclarés explicitement. Les dépendances suivantes sur le chemin de classe de compilation contiennent un processeur d'annotations. Veuillez les ajouter à la configuration annotationProcessor.
- butterknife-7.0.1.jar (butterknife-7.0.1.jar)
Vous pouvez également définir android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true pour continuer avec le comportement précédent. Notez que cette option est obsolète et sera supprimée à l'avenir.
Voir https://developer.android.com/r/tools/annotation-processor-error-message.html pour plus de détails.
修复 方案
android {
//…
defaultConfig {
//…
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
}
}

4.Aapt2Exception

Journal des erreurs

Erreur: (113, 5) erreur: attribut de style «@android: attr / windowEnterAnimation» introuvable.
Erreur: (113, 5) erreur: attribut de style «@android: attr / windowExitAnimation» introuvable.

Erreur: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: Erreur AAPT2: vérifiez les journaux pour plus de détails
Erreur: java.util.concurrent.ExecutionException: com.android. tools.aapt2.Aapt2Exception: erreur AAPT2: vérifier les journaux pour plus de détails
Erreur: com.android.tools.aapt2.Aapt2Exception: erreur AAPT2: vérifier les journaux pour plus de détails
Erreur: l'exécution a échoué pour la tâche ': app: processPreProductDebugResources'.
Échec de l'exécution de aapt

Solution Ajoutez le code suivant dans gradle.properties, désactivez la compilation aapt2
android.enableAapt2 = false

5. Autre

La nouvelle version de gradle n'a pas besoin de configurer buildToolsVersion

les dépendances sont comme ça lors de l'importation du package
{
implementation fileTree (include: ['* .jar'], dir: 'libs')
androidTestImplementation…
projet d'
implémentation… fichiers d'
implémentation… implémentation…
testImplementation'junit: junit: 4.12 '
}

Je suppose que tu aimes

Origine blog.csdn.net/hai_jian/article/details/81454443
conseillé
Classement