Windows Phone App认证工具包 - 应用清单资源测试错误

时间:2014-12-21 11:12:18

标签: image windows-phone-8.1

应用清单资源测试


失败

  • 发现错误:应用资源验证测试检测到以下错误:

    => Image reference "Assets\BadgeLogo.png": The image "Assets\BadgeLogo.scale-240.png" has an ABGR value "0x41493F00" at position (5, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######). => Image reference "Assets\BadgeLogo.png": The image "C:\WINDOWS\temp\appcert_122C\429031395C6.AlarmSIM_1.1.0.0_neutral_split.scale-100_qw59qp28q1z3y\Assets\BadgeLogo.scale-100.png" has an ABGR value "0x28463900" at position (0, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######). => Image reference "Assets\BadgeLogo.png": The image "Assets\BadgeLogo.scale-240.png" has an ABGR value "0x41493F00" at position (5, 0) that is not valid. The pixel must be white (##FFFFFF) or transparent (00######).

  • 影响(如果未修复):如果应用清单中声明的​​字符串或图片不正确,则可能无法安装该应用。如果应用安装时出现这些错误,则应用的徽标或应用使用的其他图片可能无法正确显示。

  • 如何解决:修复错误消息指示的问题。有关详细信息,请参阅以下链接:AppX Resource Validation

我尝试使用不同的工具来生成不同的应用徽标大小,但“Windows应用程序启动工具包”会抛出相同的错误,其他验证成功通过。

是否有任何工具或技术可以帮助解决此问题?

3 个答案:

答案 0 :(得分:1)

您是否检查了上述职位的ARGB值?错误消息指示徽章徽标的边缘必须为白色(0xFFFFFFFF)或透明(0x00FFFFFF)。

使用Paint.NET等编辑工具编辑徽章徽标,它对透明度有很好的支持。

答案 1 :(得分:1)

我认为徽章需要基本上是白色或透明的。我知道我只是重复但是,它需要是WHITE ||透明。因此,如果您的应用徽标是黄色和蓝色,则需要将这些颜色指定为白色和透明。如果它使用多种颜色,您需要将其转换为双色方案或重新设计它。 基本上就像制作黑白图像一样。我相信这个徽章的唯一目的是锁定屏幕设置的菜单。有几个+ + + +符号可以选择快速状态。您选择应用程序,这是徽章实际显示的位置。 3种分辨率适用于不同的手机屏幕尺寸。对此并不积极,但这只是我可以找到使用这些徽章的地方。

public class MakeWite
{
  public static void main(String args[]) throws IOException
  {
    BufferedImage img = new BufferedImage(58,      58,BufferedImage.TYPE_INT_ARGB);
    File f = null;

    try
    {
      f = new File("C:\\Users...location...BadgeLogo.scale-  100.png");
      img = ImageIO.read(f);
    }
    catch(IOException e)
    {
      System.out.println(e);
    }

    int width = img.getWidth();
    int Height = img.getHeight();

    for(int y = 0; y < Height; y++)
    {
      for(int x = 0; x < width; x++)
      {
        int p = img.getRGB(x,y);
        int A = (p>>24)&0xff;
        int R = p&0xff;
        int G = (p>>8)&0xff;
        int B = (p>>16)&0xff;


        if( R == 255 && G == 255 && B == 255)
        {
          A = 0;
          R = 0;
          G = 0;
          B = 0;
        }
        else
        {
          R = 255;
          G = 255;
          B = 255;
        }

        p = (A<<24) | (B<<16) | (G<<8) | R;
        img.setRGB(x, y, p);
      }
    }

    try
    {
      f = new File ("C:\\Users\\...outputlocatin...\\BadgeLogo.scale-   100(2).png");
      ImageIO.write(img, "png", f);
    }
    catch(IOException e)
    {
      System.out.println(e);
    }
    }
    }

这是一个简单的应用程序,也许是穴居人的方式,但它在java中将图像转换为白色和透明。

答案 2 :(得分:0)