环境:
我正在调试一个问题,该问题确实出现在使用我的SWC库的应用程序的iOS版本中,使用FB编译,并且没有出现在使用原始AIR SDK完成的非常类似应用程序的iOS版本中。
我怀疑问题的原因是编译器配置的差异。现在我试图手动(并且不成功)制作ant的build.xml,这样它就可以匹配我认为FB正在做的任何事情,希望我会在某些时候看到同样的崩溃。但这不是很有效。
有没有办法可以看到FB如何调用adt
等,并将其与我的ant
配置进行比较?
还有其他任何疑难解答提示吗?
答案 0 :(得分:2)
这让我想起了我年长的answer 简而言之,您可以创建记录其参数的程序,备份原始adt并用它替换它(您的程序甚至可以使用这些参数运行原始adt。)
答案 1 :(得分:0)
可能的情况是,flashbuilder正在使用旧版SDK的单独副本。 你可以在这里检查文件夹(窗口): C:\ Program Files(x86)\ Adobe \ Adobe 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));
}
}
}