Cordova/Phonegap - Android:图标未更新

7
我正在使用Cordova 3.3.0(CLI),按照文档说明(http://cordova.apache.org/docs/en/3.3.0/config_ref_images.md.html),我替换了www/res/icons/android文件夹中的图标。 问题是,当我构建并将应用程序发送到我的手机(cordova run android)时,即使在重新安装应用之前卸载了应用,图标仍然是默认的。 有关如何解决这个问题的任何建议?谢谢!

尝试替换图标后清除数据并进行清理+构建? - MysticMagicϡ
我的常见问题解答中解释了如何调试构建过程以查看是否真正使用了图标,以及许多其他内容:https://dev59.com/qmMm5IYBdhLWcg3wKsgj#31674547 - Sebastien Lorber
7个回答

12

我正在使用http://ionicframework.com/构建我的应用程序,它使用cordova。我遇到了和你一样的问题,并且很容易地解决了。

首先建议你进入项目根目录并运行以下命令:

grep -nr "icon.png" *

这将列出所有对icon.png的引用,并可以让你了解文件被复制到哪里。我也更新了我的android/res/drawable文件夹,但没有成功。但是,在运行上述grep命令后,我注意到图标被复制到了:

/platforms/android/ant-build/res/drawable-xhdpi/icon.png

我进入此文件夹,并发现图像是默认的cordova png图像。我使用我的图标更新了每个drawable,现在一切正常。

希望这能帮助解决你的问题。祝你好运!


3

尝试简单地重新启动你的手机。听起来很荒谬,但对我来说解决了相同的问题。


3
一次重启解决了我的问题。设备一定会缓存它们吗?

2

1
从Cordova 8.0.0开始,这仍然似乎是一个问题。我用自己的图标替换了位于res\icon\android中的默认cordova图标(保持文件名不变),期望构建将使用这些图标,但实际上没有。对我来说解决方法是在config.xml的平台部分明确指定图标路径。
<platform name="android">
    <allow-intent href="market:*" />
    <icon density="ldpi" src="res/icon/android/icon-36-ldpi.png" />
    <icon density="mdpi" src="res/icon/android/icon-48-mdpi.png" />
    <icon density="hdpi" src="res/icon/android/icon-72-hdpi.png" />
    <icon density="xhdpi" src="res/icon/android/icon-96-xhdpi.png" />
</platform>

非常感谢,我遇到了同样的问题,并通过您的解决方案使其工作。干杯! - Emanuel

0

我正在使用版本4.2。

出现了两种不同的情况,有两种不同的解决方法。

第一种情况:我在 platforms\android\ant-build\res 文件夹中更改图标。

第二种情况:Phonegap 错误地将 iOS 图标构建到了 android\res 文件夹中。通过使用 phonegap build android --verbose 日志,我发现它将 ios 图标从 \www\res\icon\ios\icon-72.png 复制到了 android\ant-build\res\drawable-hdpi\icon.png。您需要阅读日志并查看其是否正常工作。

祝你好运!


0

在与平台和www文件夹相同的文件夹中运行此Python脚本。它将用您想要的图像替换所有“icon.png”的实例。在我的情况下,标志存储在./www/img/log1.png。在Ubuntu上测试过,可能适用于其他平台。

import os; 
fileList = os.popen("find ./ -name icon.png").read();
files=fileList.split("\n");
for f in files:
    if(f!=files[len(files)-1]):
        print(f);
        os.system("cp ./www/img/logo1.png "+f+";");

我很惊讶地发现 Cordova 会自动为您缩放标志,因此不要浪费时间为每个图像制作多个像素密度。只需使用一个非常大/高像素密度的图像,它将为您缩放到较低密度屏幕的大小。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接