it-swarm.com.de

Android Studio 3.0 Flavor Dimension Issue

Upgrade auf Studio Canary Build. Mein vorheriges Projekt von Telegram Messenger gibt folgenden Fehler aus.

Fehler: Alle Aromen müssen jetzt einer benannten Aromadimension angehören. Die Geschmacksrichtung 'armv7' ist keiner Geschmacksrichtung zugeordnet. Weitere Informationen finden Sie unter https://d.Android.com/r/tools/flavorDimensions-missing-error-message.html

Was soll ich machen? Ich habe diesen Link bereits gesehen, konnte aber nicht verstehen, was zu tun ist. Ich habe jetzt 3 Build-Varianten, Release, Debug und Foss.

213

Wenn Sie den Mechanismus nicht wirklich benötigen, geben Sie einfach eine zufällige Geschmacksdimension in Ihrem build.gradle an:

Android { 
    ...
    flavorDimensions "default"
    ...
}

Weitere Informationen finden Sie in der Migrationsanleitung

503
tknell

Nachdem ich es sorgfältig versucht und gelesen hatte, löste ich es selbst. Die Lösung besteht darin, die folgende Zeile in build.gradle hinzuzufügen.

flavorDimensions "versionCode"

Android { 
       compileSdkVersion 24
       .....
       flavorDimensions "versionCode"
} 
58

Hier können Sie das Problem beheben, indem Sie flavorDimension mit dem Namen productFlavors hinzufügen und die Dimension definieren. Siehe Beispiel unten. Weitere Informationen finden Sie hier. 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

    }
35
Abdul Rizwan

Wenn Sie keine Bemaßungen verwenden möchten, sollten Sie diese Linie verwenden

Android { 
compileSdkVersion 24

...
flavorDimensions "default"
...
}

wenn Sie jedoch Dimensionen verwenden möchten, müssen Sie zuerst Ihren Dimensionsnamen deklarieren und dann diesen Namen verwenden, nachdem DIESES Beispiel aus den Dokumentationen stammt:

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"
  ...
    }
  }
}
...
18

Ich habe FlavourDimensions für meine Anwendung in build.gradle verwendet (Modul: 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
    }
}

Überprüfen Sie diesen Link für weitere Informationen

// 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"
            ...
     }
}
8
Ranjit Chandel

Wenn Sie einfache Aromen haben (Free/Pro, Demo/Full usw.), fügen Sie der build.gradle-Datei Folgendes hinzu:

Android {
...
flavorDimensions "version"
productFlavors {
        free{
            dimension "version"
            ...
            }
        pro{
            dimension "version"
            ...
            }
}

Durch Dimensionen können Sie "Aromen in Aromen" erzeugen. Weiterlesen .

0
Style-7