为什么 Phonegap 会替换我的图标?

Why does Phonegap replace my icon?

我在 SO 上遵循了 Phonegap 图标问题的教程和解决方案。从我正在阅读的内容来看,如果我在本地构建,我需要用我自己的替换 platforms/android/res/drawable 中的 PG 图标(drawable 中有 3 个 diff 文件夹包含该图标)。这就是我正在做的。这就是它变得奇怪的地方。我将这些图标替换为我自己的(不同的图标,相同的名称),然后转到终端并执行 phonegap build android,然后如果我导航回可绘制文件夹,我会看到我的新图标再次被替换为默认 Phonegap 机器人图标。我错过了什么?

是的,问题是每次您从 PhoneGap CLI 执行 buildrun 时都会重建 platform 文件夹,因此您不想替换它们有手动。相反,您应该将它们保存在项目根目录中某处的文件夹中(随便命名),然后在给定平台的 config.xml 文件中引用它们的路径。当您执行 buildrun 等操作时,PhoneGap CLI 会自动将它们复制到平台级别。对于 Android,它会将它们复制到 platforms/android/res/drawable*文件夹特别基于它们的密度(ldpi 等)。您只需要确保在 config.xml 中指定正确的 density 属性(或 iOS 的 width/height)以匹配根项目中的正确路径成立。

例如,在 config.xml 中,您可能有以下 Android 图标:

<platform name="android">
    <icon density="ldpi" src="resources/android/ldpi-icon.png" />
    <icon density="mdpi" src="resources/android/mdpi-icon.png" />
    <icon density="hdpi" src="resources/android/hdpi-icon.png" />
    <icon density="xhdpi" src="resources/android/xhdpi-icon.png" />
    <icon density="xxhdpi" src="resources/android/xxhdpi-icon.png" />
    <icon density="xxxhdpi" src="resources/android/xxxhdpi-icon.png" />
</platform>

其中 resources 位于项目的根目录中,与 www 文件夹处于同一级别(即:myProj/resources)。

您可以找到关于此的更多详细信息 in the Cordova docs 以了解有关配置图标的更多详细信息。

如果由于某种原因它不起作用,请检查以确保您拥有 PhoneGap CLI 的最新版本或更新到最新版本。

~冬青

您必须在 www 根文件夹内的 config.xml 文件中添加图标配置。尝试添加如下内容:

<platform name="android">
       <icon src="res/android/ldpi.png" density="ldpi" />
       <icon src="res/android/mdpi.png" density="mdpi" />
       <icon src="res/android/hdpi.png" density="hdpi" />
       <icon src="res/android/xhdpi.png" density="xhdpi" />
 </platform>

创建这些包含您的图标的文件夹并执行 phonegap build android

答案实际上是在根级别(与 www 目录同一级别)的 config.xml 中使用此代码块:

<icon src="www/res/icon/android/ldpi.png" platform="android" density="ldpi" />
<icon src="www/res/icon/android/mdpi.png" platform="android" density="mdpi" />
<icon src="www/res/icon/android/hdpi.png" platform="android" density="hdpi" />
<icon src="www/res/icon/android/xhdpi.png" platform="android" density="xhdpi" />
<icon src="www/res/icon/android/xxhdpi.png" platform="android" density="xxhdpi" />
<icon src="www/res/icon/android/xxxhdpi.png" platform="android" density="xxxhdpi"/>

显然,确保这些路径通向您的图标。