Problème de dimension saveur Android Studio 3.0

Mise à niveau vers la version Studio Canary. Mon projet précédent de Telegram Messenger donne l’erreur suivante.

Erreur: toutes les saveurs doivent maintenant appartenir à une dimension de saveur nommée. La saveur «armv7» n’est pas affectée à une dimension de saveur. En savoir plus sur https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

Que devrais-je faire? J’ai déjà vu ce lien mais je ne pouvais pas comprendre quoi faire. J’ai 3 variantes de build maintenant, release, debug et foss.

Si vous n’avez pas vraiment besoin du mécanisme, spécifiez simplement une dimension de saveur aléatoire dans votre build.gradle :

 android { ... flavorDimensions "default" ... } 

Pour plus d’informations, consultez le guide de migration

Après avoir essayé et lu attentivement, je l’ai résolu moi-même. La solution consiste à append la ligne suivante dans build.gradle.

flavourDimensions “versionCode”

 android { comstackSdkVersion 24 ..... flavorDimensions "versionCode" } 

Ici vous pouvez résoudre ce problème, vous devez append flavorDimension avec le nom de productFlavors et vous devez également définir la dimension, voir l’exemple ci-dessous et pour plus d’informations, voir ici https://developer.android.com/studio/build/gradle-plugin- 3-0-0-migration.html

 flavorDimensions 'free','paid' //here defined dimensions productFlavors { production { dimension 'paid' //you just need to add this line ... // your existing code } demo { dimension 'free' //added here also ... // your existing code } development { dimension 'free' //add here too ... // your existing code } 

Si vous ne souhaitez pas utiliser les dimensions, vous devez utiliser cette ligne

 android { comstackSdkVersion 24 ... flavorDimensions "default" ... } 

mais si vous souhaitez utiliser des dimensions, vous devez d’abord déclarer votre nom de dimension, puis utiliser ce nom après que cet exemple provient des documentations:

 android { ... buildTypes { debug {...} release {...} } // Specifies the flavor dimensions you want to use. The order in which you // list each dimension determines its priority, from highest to lowest, // when Gradle merges variant sources and configurations. You must assign // each product flavor you configure to one of the flavor dimensions. flavorDimensions "api", "mode" productFlavors { demo { // Assigns this product flavor to the "mode" flavor dimension. dimension "mode" ... } full { dimension "mode" ... } // Configurations in the "api" product flavors override those in "mode" // flavors and the defaultConfig block. Gradle determines the priority // between flavor dimensions based on the order in which they appear next // to the flavorDimensions property above--the first dimension has a higher // priority than the second, and so on. minApi24 { dimension "api" minSdkVersion 24 // To ensure the target device receives the version of the app with // the highest compatible API level, assign version codes in increasing // value with API level. To learn more about assigning version codes to // support app updates and uploading to Google Play, read Multiple APK Support versionCode 30000 + android.defaultConfig.versionCode versionNameSuffix "-minApi24" ... } minApi23 { dimension "api" minSdkVersion 23 versionCode 20000 + android.defaultConfig.versionCode versionNameSuffix "-minApi23" ... } minApi21 { dimension "api" minSdkVersion 21 versionCode 10000 + android.defaultConfig.versionCode versionNameSuffix "-minApi21" ... } } } ... 

J’ai utilisé flavorDimensions pour mon application dans build.gradle (Module: app)

 flavorDimensions "tier" productFlavors { production { flavorDimensions "tier" //manifestPlaceholders = [appName: APP_NAME] //signingConfig signingConfigs.config } staging { flavorDimensions "tier" //manifestPlaceholders = [appName: APP_NAME_STAGING] //applicationIdSuffix ".staging" //versionNameSuffix "-staging" //signingConfig signingConfigs.config } } 

Consultez ce lien pour plus d’informations

 // Specifies two flavor dimensions. flavorDimensions "tier", "minApi" productFlavors { free { // Assigns this product flavor to the "tier" flavor dimension. Specifying // this property is optional if you are using only one dimension. dimension "tier" ... } paid { dimension "tier" ... } minApi23 { dimension "minApi" ... } minApi18 { dimension "minApi" ... } }