Cordova / Phonegap - Android:图标未更新

时间:2014-02-08 14:29:11

标签: android cordova icons

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

7 个答案:

答案 0 :(得分: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,现在一切都很顺利。

希望这有助于解决您的问题。祝你好运!

答案 1 :(得分:3)

尝试重新启动手机。这听起来很荒谬,但它为我解决了同样的问题。

答案 2 :(得分:3)

重启对我有用。设备必须缓存它们吗?

答案 3 :(得分:2)

www / res / icons似乎没有真正的功能,我没有看到它们功能正常,这是一篇有用的文章:http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

最好的办法是编写一次脚本,将它们复制到正确的位置

答案 4 :(得分:1)

截至Cordova 8.0.0,这仍然是一个问题。我用自己的res\icon\android替换了<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> 中的默认cordova图标(保持文件名称),并期望构建将使用这些图标,但事实并非如此。

我的修复是在config.xml的platform部分明确指定图标的路径。

filename = "3D_710.png"
# create a list of the parts of the file name separated by "_"
filename_parts = filename.split("_")
# new_file is only the last part
new_file = filename_parts[-1]
print new_file
# 710.png

答案 5 :(得分:0)

我正在使用4.2版。

发生了2次不同的实例和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巴纽。你会想要阅读日志,看看它是否行为不端。

祝你好运!

答案 6 :(得分:0)

在与平台和放大器相同的文件夹中运行此python脚本。 www文件夹。它将取代&#34; icon.png&#34;的所有实例。与您想要的图像。在我的例子中,徽标存储在./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会自动为您缩放徽标,因此不要浪费时间为每张图片制作多个像素密度。只需使用一个非常大/高像素密度的图像,它就可以为低密度屏幕缩放。

相关问题