我已经在我的计算机上启动了一个新项目,但我已经无法为Android构建
当我跑步时
ionic cordova platform run android
我收到此错误:
All flavors must now belong to a named flavor dimension.
答案 0 :(得分:25)
"口味"如果您在项目中安装了cordova-plugin-crosswalk-webview
插件并尝试使用Gradle v4进行构建,则会出现错误。
但是,如果您要升级到cordova-android@6.4.0
(例如,要在Android Studio 3中打开您的Cordova Android平台项目以调试本机插件代码),您需要升级到Gradle v4。
因此,cordova-plugin-crosswalk-webview
目前与cordova-android@6.4.0
不兼容。
作为"口味的手动解决方法"错误,您可以在platforms/android/build.gradle
(see here)中插入默认风格:
android {
...
flavorDimensions "default"
...
}
<强>更新强>
如果您想使用Gradle v4 / cordova-android@6.4+
和cordova-plugin-crosswalk-webview
进行构建,请更新到Gradle v4,然后从主分支安装cordova-android
,因为this PR要解析& #34;调味剂&#34;多个APK版本的错误现已合并:
cordova platform rm android
&& cordova platform add https://github.com/apache/cordova-android
答案 1 :(得分:1)
找到解决方案。 :)
Gradle版本就是问题所在。我不得不从4.X降级到3.5.1,效果很好!
通过执行
检查您的gradle版本gradle -v
if if's&gt; 4.x,降级它!
答案 2 :(得分:1)
我得到了同样的错误,我创建了一个脚本来解决它。
正如答案中所述,问题是:gradle 4想要在gradle.build上使用flavorDimensions。
如果您在此处查看:https://cordova.apache.org/docs/en/latest/guide/platforms/android/#extending-buildgradle
我们可以创建一个名为gradle-extra.build的文件,它将包含在gradle.build中,我们只需创建一个脚本将该文件粘贴到/ platform / android /上。
所以我在项目根目录
中创建了这个文件build-extras.gradleandroid {
flavorDimensions "default"
}
和./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
/ hooks / after_platform_add下的每个脚本都将在离子平台添加后执行***
有了这个,我们不需要降级gradle也不需要更改cordova-android版本。
答案 3 :(得分:0)