use*_*526 3 eclipse tycho maven
我们使用tycho v0.13和maven 3.0来构建我们的产品.
我们在构建时收到以下错误/警告
错误 - 使用D:\ Builds\workspace\plugins\icons\app-icon.ico在C:\ Users\AppData\Local\Temp\p2.brandingIron7115583353836584113\launcher.exe中未替换7图标
ico文件都很合适.结果窗口图标被标准的eclipse图标取代.
我对Tycho本身并不过分熟悉,但在这里我相信它正在使用p2附带的品牌代码(最初来自PDE/Build).
该代码从原始启动器可执行文件中提取图标图像,并在提供的ico文件中搜索匹配的图像.如果找到的图像与大小和位深度完全匹配,则替换该图像.启动器中嵌入了7个图像,所提供的图像应提供与大小和位深相匹配的图像.
错误消息表明在可执行文件中找到的7个图标在提供的ico文件中没有匹配的大小/位深度.
3.7.2中附带的启动器包含以下尺寸(顺序无关紧要):
4.2(3.8)中装运的启动器包含以下尺寸:
小智 6
我们有一些令人沮丧的时刻,我们得到了关于丢失图标的错误,所以我决定深入研究它.以下是我的发现......基本上为Andrew Niefer的回答添加了额外的信息.
对于Windows,下面描述了替换本机启动器中的图像的过程.处理由p2类完成:org.eclipse.pde.internal.swt.tools.IconExe
本课程查看原生启动器的资源,并注意其中的位图:它们的大小和颜色深度.然后它查看提供的图像.这可以是单独的BPM列表或包含多个BMP的ICO文件.还注意到它们的尺寸和颜色深度.这仅在所有提供的图像都未压缩时有效.当压缩一个或多个图像时,该过程停止并且在本机启动器中不替换位图.接下来,它尝试将提供的BMP大小和颜色深度与本机启动器中的大小和颜色深度相匹配,并在原始启动器中替换它们.当本机启动程序中的一个或多个位图在提供的映像中不可用时,以下消息将写入System.err:
Error - <n> icon(s) not replaced in […]using […]
Run Code Online (Sandbox Code Playgroud)
IconExe类有一个main方法,可以作为独立运行.它的第一个参数是需要修改的本机启动器,以下参数是提供的BPM或ICO文件.
对于Eclipse 4.3(.x),本机启动程序包含7个位图:
因此,对于替换图像成功的过程,需要提供具有相同尺寸和深度的7个图像,作为单独的BMP或在ICO内部.
但是,在使用时,第谷-P2-出版商插件,你不能提供7级独立的BPM,因为第谷-P2-出版商插件时,在它被指定为不知道256x256x32形象.产品文件.它的类org.eclipse.tycho.model.Launcher只从.product文件中读取其他6个图像位置,因此跳过第7个图像(256x256x32).因此,IconExe获取的列表是一个短图像,并将始终报告:
Error - 1 icon(s) not replaced in […]using […]
Run Code Online (Sandbox Code Playgroud)
对我们有用的解决方案是将7个BMP合并到一个ICO文件中,并在.product文件中提供.
但请注意,某些可以创建ICO文件的图像处理应用程序默认会压缩256x256x32图像.这就是让我们走错了路的原因!因此,请注意ICO文件中的所有图像都是未压缩的.
| 归档时间: |
|
| 查看次数: |
2794 次 |
| 最近记录: |