1

我过去用 flash builder 构建了带有图标的 air 应用程序,一切都很好。

现在我必须使用 adt(air developer tool) 构建另一个应用程序,但我遇到了奇怪的问题。

  1. 如果我只是将相对于“src”文件夹的图标路径放置到应用程序描述符(像往常一样),它会说: error 303: Icon icon.png is missing from package.

  2. 如果我icon.png在应用程序描述符中使用没有路径,然后将此文件放在任何地方(到根目录、到资产、到 src、到构建目标等等),它又会说error 303: Icon icon.png is missing from package.

  3. 如果我尝试将图标路径添加到 adt args 之类的<arg value="icon.png"/>(并将其放入输出文件夹,因为在我的情况下,所有路径似乎都是相对于它的),它会说The path icon.png is restricted. If you were trying to package Icon.png you should correct the case.

  4. 当我指向原始文件位置(<arg value="../src/assets/icon.png"/>)时,它会输出File ..\src\assets\icon.png is not relative to directory E:\projQ\flex\MyProject\bin(这个bin目录实际上是输出目录)。我在 adobe 论坛上阅读了未经批准的评论,认为这是由于某些沙箱限制造成的,但我什至不确定 adt 是否存在沙箱(如果存在,那为什么?)

那么,我该怎么做才能成功地将图标添加到该应用程序? 我想使用 resHacker 之类的工具来进行项目.exe不会有帮助,因为.exe它只是.swf文件的启动器,无论如何我认为这种糟糕的方式会导致编程的阴暗面。

(PS 不能添加与 adobe 相关的“adt”标签,而不是 android。)

4

2 回答 2

1

好的。最后我找到了解决方案。因此,在使用 adt 手动打包时包含图标的要求是:

  1. 将文件名添加到应用程序描述符而不使用任何...
  2. 我求求你,甚至不要尝试命名你的图标文件icon.png。这是一个显而易见的名字,对于adt. 因此,他们似乎正在将某些文件重命名icon.png为此类文件或生成此类文件的输出。或者将此文件放入目录的某个子目录中,由adt. 实际上,错误输出正是告诉您避免使用路径 icon.png。Correct the case短语(让我感到困惑)意味着rename your icon or move it deeper in directory hierarchy
  3. 将图标的路径作为命令行参数添加到adt.

生成后,您将在生成的输出文件夹中看到您的图标。您可以将其删除,并且应用程序仍将按预期显示您的图标。

于 2013-02-22T18:20:29.207 回答
1

这更多地是对上述答案中第一点的阐述,以澄清像我这样一直在努力解决这个问题的人。

错误显示“与目录无关”,但它的意思是“不是目录的子级”。基本上,即使您尝试使用有效的相对路径,它也希望它指向您工作目录下的某些内容。在我的情况下,以下技巧奏效:

./../..build/executable.swf

替换为

-C ./../.. build/executable.swf

-C 使ADT 改变目录到上面的一个两级,然后你可以指定需要的文件。

在玩了多一点 ADT 之后,我现在意识到它为什么会这样做 - 你给它的路径将成为包中的路径。因此,在上面的示例中,该文件将在包中的build/executable.swf. 如果您希望使其在包的根级别可用,请将 -C 指令更改为以下内容:

-C ./../../build executable.swf

于 2013-11-06T03:57:36.653 回答