cordova-icon插件在Android平台7.0.0下被破坏了

时间:2017-12-25 04:06:58

标签: cordova cordova-android

安装最新的android平台7.0.0,然后运行此命令:

cordova-icon
尝试运行时

出现以下错误:

Parsing <app-folder>/platforms/android/res/xml/config.xml failed
Error: ENOENT: no such file or directory

有没有办法解决它?

2 个答案:

答案 0 :(得分:2)

似乎在Android 7.0.0下,文件夹的结构得到了一些重构,现在cordova-icon与它不兼容。

这应该由插件所有者修复,但作为一个直接的解决方案,我发现声明一些符号链接(在Mac OSX下)可以解决这个问题。

编辑:更换了解决方案!!

最初我发布了一个使用符号链接解决编译错误的解决方案,但结果是只使用了默认图标而不是我的自定义图标。

这里描述了真正的解决方案:https://github.com/AlexDisler/cordova-icon/issues/99

修复cordova-icon:

编辑插件的''index.js''。我正在使用Brackets:

open /usr/local/lib/node_modules/cordova-icon/index.js -a Brackets

替换此行:

iconsPath : 'platforms/android/res/',

使用:

iconsPath : 'platforms/android/app/src/main/res/',

还会删除所有以''drawable'开头的图标行,如

{ name : 'drawable/icon.png',       size : 96 },

因为Android中的图标现在只使用mipmap版本。

修复cordova-splash:

编辑插件的''index.js''。我正在使用Brackets:

open /usr/local/lib/node_modules/cordova-splash/index.js -a Brackets

替换此行:

splashPath : 'platforms/android/res/',

使用:

splashPath : 'platforms/android/app/src/main/res/',

答案 1 :(得分:0)

我还更改了文件:

/usr/local/lib/node_modules/cordova-icon/index.js

要支持mipmap图标:

platforms.push({
name : 'android',
isAdded : fs.existsSync('platforms/android'),
iconsPath : 'platforms/android/app/src/main/res/',
icons : [
{ name : 'mipmap-hdpi/ic_launcher.png', size : 72 },
{ name : 'mipmap-ldpi/ic_launcher.png', size : 36 },
{ name : 'mipmap-mdpi/ic_launcher.png', size : 48 },
{ name : 'mipmap-xhdpi/ic_launcher.png', size : 96 },
{ name : 'mipmap-xxhdpi/ic_launcher.png', size : 144 },
{ name : 'mipmap-xxxhdpi/ic_launcher.png', size : 192 },
{ name : 'mipmap-hdpi-v26/ic_launcher_foreground.png', size : 72 },
{ name : 'mipmap-ldpi-v26/ic_launcher_foreground.png', size : 36 },
{ name : 'mipmap-mdpi-v26/ic_launcher_foreground.png', size : 48 },
{ name : 'mipmap-xhdpi-v26/ic_launcher_foreground.png', size : 216 },
{ name : 'mipmap-xxhdpi-v26/ic_launcher_foreground.png', size : 324 },
{ name : 'mipmap-xxxhdpi-v26/ic_launcher_foreground.png', size : 432 },
]
});