当我运行ionic resources
或ionic resources android
时,它会显示为iOS和Android生成启动画面和图标。但是,当我检查android平台下的res文件夹时,运行ionic build android
或ionic run android --device
后图标会保持不变。我已经尝试清理缓存,卸载应用程序并重新安装,甚至手动尝试在平台文件夹中设置图标,但没有一个工作。 iOS图标/启动画面工作正常。
答案 0 :(得分:1)
本周我也有这个问题。这就是我所做的。
基于this blog post我通过以下步骤为我工作:
1)在
中创建一个新钩子钩/ after_prepare / 020_android_move_custom_resources.js
#!/usr/bin/env node
// This hook copies various resource files
// from our version control system directories
// into the appropriate platform specific location
var customResources = [{
"pathToResources/android/other/notification_icon.png":
"platforms/android/res/drawable/notification_icon.png"
}, {
"pathToResources/android/other/thatOtherImg.png":
"platforms/android/res/thatOtherFolder/thatOtherImg.png"
}
];
var fs = require('fs');
var path = require('path');
// no need to configure below
var rootDir = process.argv[2];
customResources.forEach(function(obj) {
Object.keys(obj).forEach(function(key) {
var val = obj[key];
var srcFile = path.join(rootDir, key);
var destFile = path.join(rootDir, val);
var destDir = path.dirname(destFile);
if (fs.existsSync(srcFile) && fs.existsSync(destDir)) {
fs.createReadStream(srcFile).pipe(fs.createWriteStream(destFile));
}
});
});
2)将要复制的所有资源放入customResources
数组中,每个数组都在自己的对象中。关键是来源,价值是目的地。
3)使钩子可以执行
$ chmod +x hooks/after_prepare/020_android_move_custom_resources.js
这让它运转了。这样,克隆我的git项目的任何人也将在编译时复制文件。
答案 1 :(得分:0)
我也遇到了这个问题。这似乎是Cordova 6的一个问题,应该已经修复了6.1。以下是相关网址 - https://github.com/driftyco/ionic-cli/issues/1638
当您运行离子资源命令时,文件似乎正确地复制到根文件夹下的res文件夹中,但是在构建过程中的某个地方,文件不会被复制到最终目标,即平台下的res文件夹/ android文件夹。
我按照快速手动步骤将res文件夹的内容从根文件夹下复制到platforms / android / res文件夹中。请注意不要删除目标文件夹中的其他文件夹,例如值和xmls。
此后图标和启动画面工作正常。
不幸的是,我现在没有更好的解决方案。
答案 2 :(得分:0)
以下是我为尽快开始工作而采取的措施。
ionic cordova resources android;
cd resources/android/splash;
mkdir ../assets;
mkdir ../assets/drawable-land-hdpi;
mkdir ../assets/drawable-land-ldpi;
mkdir ../assets/drawable-land-mdpi;
mkdir ../assets/drawable-land-xhdpi;
mkdir ../assets/drawable-land-xxhdpi;
mkdir ../assets/drawable-land-xxxhdpi;
mkdir ../assets/drawable-port-hdpi;
mkdir ../assets/drawable-port-ldpi;
mkdir ../assets/drawable-port-mdpi;
mkdir ../assets/drawable-port-xhdpi;
mkdir ../assets/drawable-port-xxhdpi;
mkdir ../assets/drawable-port-xxxhdpi;
cp drawable-land-hdpi-screen.png ../assets/drawable-land-hdpi/screen.png;
cp drawable-land-ldpi-screen.png ../assets/drawable-land-ldpi/screen.png;
cp drawable-land-mdpi-screen.png ../assets/drawable-land-mdpi/screen.png;
cp drawable-land-xhdpi-screen.png ../assets/drawable-land-xhdpi/screen.png;
cp drawable-land-xxhdpi-screen.png ../assets/drawable-land-xxhdpi/screen.png;
cp drawable-land-xxxhdpi-screen.png ../assets/drawable-land-xxxhdpi/screen.png;
cp drawable-port-hdpi-screen.png ../assets/drawable-port-hdpi/screen.png;
cp drawable-port-ldpi-screen.png ../assets/drawable-port-ldpi/screen.png;
cp drawable-port-mdpi-screen.png ../assets/drawable-port-mdpi/screen.png;
cp drawable-port-xhdpi-screen.png ../assets/drawable-port-xhdpi/screen.png;
cp drawable-port-xxhdpi-screen.png ../assets/drawable-port-xxhdpi/screen.png;
cp drawable-port-xxxhdpi-screen.png ../assets/drawable-port-xxxhdpi/screen.png;
cd ../icon;
mkdir ../assets/mipmap-hdpi;
mkdir ../assets/mipmap-ldpi;
mkdir ../assets/mipmap-mdpi;
mkdir ../assets/mipmap-xhdpi;
mkdir ../assets/mipmap-xxhdpi;
mkdir ../assets/mipmap-xxxhdpi;
cp drawable-hdpi-icon.png ../assets/mipmap-hdpi/icon.png;
cp drawable-ldpi-icon.png ../assets/mipmap-ldpi/icon.png;
cp drawable-mdpi-icon.png ../assets/mipmap-mdpi/icon.png;
cp drawable-hdpi-icon.png ../assets/mipmap-hdpi/icon.png;
cp drawable-xhdpi-icon.png ../assets/mipmap-xhdpi/icon.png;
cp drawable-xxhdpi-icon.png ../assets/mipmap-xxhdpi/icon.png;
cp drawable-xxxhdpi-icon.png ../assets/mipmap-xxxhdpi/icon.png;
cd ../assets;
cp -rf ./* ../../../platforms/android/res/;
cd ../../..;
第一行执行正常资源生成。然后剩下的就是格式化文件并将它们移动到正确的目的地。 您可以创建一个.sh脚本并将此代码放入其中以方便使用。