如何查看Flash Builder如何调用adt?

时间:2012-02-17 04:17:40

标签: flash ant air flash-builder

环境:

  • Flash Builder 4.6
  • AIR SDK 3.1
  • OS X 10.7.3

我正在调试一个问题,该问题确实出现在使用我的SWC库的应用程序的iOS版本中,使用FB编译,并且没有出现在使用原始AIR SDK完成的非常类似应用程序的iOS版本中。

我怀疑问题的原因是编译器配置的差异。现在我试图手动(并且不成功)制作ant的build.xml,这样它就可以匹配我认为FB正在做的任何事情,希望我会在某些时候看到同样的崩溃。但这不是很有效。

有没有办法可以看到FB如何调用adt等,并将其与我的ant配置进行比较?

还有其他任何疑难解答提示吗?

3 个答案:

答案 0 :(得分:2)

这让我想起了我年长的answer 简而言之,您可以创建记录其参数的程序,备份原始adt并用它替换它(您的程序甚至可以使用这些参数运行原始adt。)

答案 1 :(得分:0)

可能的情况是,flashbuilder正在使用旧版SDK的单独副本。 你可以在这里检查文件夹(窗口): C:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash Builder 4 \ sdks

查看您是否使用最新的AIR sdk。

答案 2 :(得分:0)

我结合了来自another thread的回答并写了这个:

只需构建一个可运行的jar文件

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;


public class adt {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        String argsString = "";

        for(int i=0; i<args.length; ++i)
        {
            argsString += args[i];
        }

        Process proc = Runtime.getRuntime().exec("java -jar adt2.jar " + argsString);

        File txt = new File("C:\\command.txt");
        try(FileWriter writer = new FileWriter(txt))
        {
            writer.write(argsString);
        }

        try {
            proc.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        InputStream in = proc.getInputStream();
        InputStream err = proc.getErrorStream();

        byte b[]=new byte[in.available()];
        in.read(b,0,b.length);
        System.out.println(new String(b));

        byte c[]=new byte[err.available()];
        err.read(c,0,c.length);
        System.out.println(new String(c));

        File out = new File("C:\\output.txt");
        try(FileWriter writer = new FileWriter(out))
        {
            writer.write(new String(b));
        }

        File errors = new File("C:\\errors.txt");
        try(FileWriter writer = new FileWriter(errors))
        {
            writer.write(new String(c));
        }
    }

}