我过去使用flash构建了带有图标的air应用程序,一切都很好。
现在我必须使用adt(air developer tool)构建另一个应用程序,但我遇到了奇怪的问题。
如果我只是将相对于'src'文件夹的图标路径放到app描述符(像往常一样),它会说:
error 303: Icon icon.png is missing from package
。
如果我在应用程序描述符中使用icon.png
没有路径,然后将此文件放在任何地方(根目录,资源,src,构建目标等),它再次说{{1 }}
如果我尝试将图标路径添加到error 303: Icon icon.png is missing from package
等adt args(并将其放到输出文件夹中,因为在我的情况下所有路径似乎都相对于它),它会显示{{1} }。
当我指向原始文件位置(<arg value="icon.png"/>
)时,它输出The path icon.png is restricted. If you were trying to package Icon.png you should correct the case
(此<arg value="../src/assets/icon.png"/>
目录实际上是输出目录)。我在adobe论坛上看到了未经批准的评论,这是由于一些沙箱限制,但我甚至不确定adt存在沙盒(如果存在,那么为什么?)
那么,我该如何成功地将图标添加到该应用程序?
我想使用像resHacker这样的工具File ..\src\assets\icon.png is not relative to directory E:\projQ\flex\MyProject\bin
无效,因为bin
只是.exe
文件的启动器,无论如何我认为这种糟糕的方式会导致编程的黑暗面
(P.S。不能添加与adobe有关的'adt'标签,而不是android。)
答案 0 :(得分:1)
尼斯。最后我找到了解决方案。因此,使用adt手动打包时包含图标的要求是:
..
的情况下将文件名添加到应用程序描述符。 icon.png
。这是明显的名称,对adt
的创作者来说很明显。因此,似乎他们将某些文件重命名为icon.png
或生成输出到此类文件。或者将此文件放入目录的某个子目录中,该子目录由adt
用作root用户。实际上,错误输出确切地告诉您避免使用path icon.png。 Correct the case
短语(让我感到困惑)意味着rename your icon or move it deeper in directory hierarchy
adt
的命令行参数。生成后,您将在生成的输出文件夹中看到您的图标。您可以将其删除,应用程序仍会按预期显示您的图标。
答案 1 :(得分:1)
这更像是对上述答案中第一点的阐述,以澄清像我这样一直在努力解决这个问题的人。
错误显示“与目录无关”,但它的意思是“不是目录的子节点”。基本上即使您尝试使用有效的相对路径,它也希望它指向工作目录下的。在我的情况下,以下技巧有效:
./../..build/executable.swf
替换为
-C ./../.. build/executable.swf
-C使ADT更改目录到上面的两个级别,然后您可以指定必要的文件。
在玩ADT之后,我现在意识到它为什么这样做 - 你给它的路径将成为包中的路径。因此,在上面的示例中,文件将在build/executable.swf
的包中提供。如果您希望在包的根级别提供它,请将-C指令更改为以下内容:
-C ./../../build executable.swf