Ионная ошибка сборки андроида: "Все вкусы теперь должны принадлежать названному вкусу"

Я начал новый проект на своем компьютере, но я больше не могу создавать для android

Когда я запустил

ionic cordova platform run android

Я получаю эту ошибку:

All flavors must now belong to a named flavor dimension. 

Ответ 1

Ошибка "ароматизаторов" возникает, если в вашем проекте установлен плагин cordova-plugin-crosswalk-webview, и вы пытаетесь построить с помощью Gradle v4.

Однако, если вы хотите перейти на [email protected] (например, чтобы открыть проект платформы Android Кордовы в Android Studio 3 для отладки собственного кода плагина), вам нужно будет перейти на Gradle v4. Следовательно, cordova-plugin-crosswalk-webview в настоящее время несовместим с [email protected].

В качестве ручного способа обхода ошибки "ароматизаторы" вы можете вставить в platforms/android/build.gradle ( значение по умолчанию):

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

Обновление

Если вы хотите построить с помощью Gradle v4/[email protected]+ и cordova-plugin-crosswalk-webview, обновите до Gradle v4, затем установите cordova-android с главной ветки, так как этот PR для устранения ошибки "ароматов" с несколькими сборками APK теперь слит:

cordova platform rm android 
  && cordova platform add https://github.com/apache/cordova-android

Ответ 2

Нашел решение.:)

Проблема с версией

Gradle. Я должен был понизить с 4.X до 3.5.1, что отлично работает!

Проверьте версию gradle, выполнив

gradle -v

Если if > 4.x, понизите его!

Ответ 3

Я получаю ту же ошибку, и я создал script для ее решения.

Как было сказано в ответе, проблема в следующем: gradle 4 хочет flavorDimensions на gradle.build.

Если вы проверите здесь: https://cordova.apache.org/docs/en/latest/guide/platforms/android/#extending-buildgradle

Мы можем создать файл с именем gradle -extra.build, который будет включен в gradle.build, нам просто нужно создать script, чтобы вставить этот файл на /platform/android/.

Итак, я создал этот файл build-extras.gradle в корневом каталоге проекта

android { 
    flavorDimensions "default"
} 

и script on./hooks/after_platform_add/copy_build-extras.gradle.js

#!/usr/bin/env node

var fs = require('fs');
var path = require('path');

if(fs.existsSync(path.resolve(__dirname, '../../platforms/android'))) {
  fs.createReadStream(path.resolve(__dirname, '../../build-extras.gradle')).pipe(fs.createWriteStream(path.resolve(__dirname, '../../platforms/android/build-extras.gradle')));
}

Здесь вы можете узнать о крючках: https://cordova.apache.org/docs/en/latest/guide/appdev/hooks/index.html

каждый script под /hooks/after _platform_add будет выполнен после добавления ионной платформы ***

При этом нам не нужно понижать версию gradle и не менять версию cordova-android.