创建 AIR 文件时出错:无法生成时间戳:握手期间远程主机关闭连接

Posted

技术标签:

【中文标题】创建 AIR 文件时出错:无法生成时间戳:握手期间远程主机关闭连接【英文标题】:Error creating AIR file: Could not generate timestamp: Remote host closed connection during handshake 【发布时间】:2017-02-17 19:37:19 【问题描述】:

我一直在尝试从 Flash Builder 导出发布版本,但出现错误:

错误信息是:

创建 AIR 文件时出错:无法生成时间戳:远程主机 握手期间关闭连接

更新: 我找到了这个post,它说它使用https://timestamp.geotrust.com/tsa 来获取时间戳。我在浏览器中访问了这个 URL 并收到了 404 - 找不到页面。

更新 2: 时间戳site 似乎已经关闭了几天。

更新 3: 看起来 geotrust 切换到了破坏 Flash Builder 的 TLS 1.2。这是 Adob​​e 的回复here:

感谢您报告问题。我们调查发现 timestamp.geotrust.com 最近禁用了 TLS 1.0(参见 cmets on http://downornotworking.com/timestamp.geotrust.com/),因此请 尝试在您的机器上升级到 Java 1.8,其中 ADT(在 AIR SDK(基于 Java)打包。

好的。我读过here 说Flash Builder 和Java 1.8 存在兼容性问题。我要安装 Java 1.8 吗?如何使用 Flash Builder 做到这一点?

我在 Mac OS X 10.11 上运行 Flash Builder 4.7

【问题讨论】:

你不是FB4吗? 我使用的是 Flash Builder 4.7 FB 4.7 on Windows here,据我所知,我已经在使用 Java 1.8。仍然收到错误。 我在某处读到有人可以使用标志-tsa other.timestamp.site 选择另一个时间戳站点。我看看能不能找到。我不记得您是否将其作为编译器标志在 FB 中工作,或者您是否必须切换到使用我不想这样做的 Ant。 FB 中的导出对话框为我处理所有导出过程。 【参考方案1】:

有一篇关于如何为 Java 7/8 设置 Flash Builder 的好文章

Running Adobe Flash Builder on Mac with Java 7/8

我在这里重新创建步骤以防链接脱机

要遵循的步骤

Set your JAVA_HOME to Java 7 or Java 8 as per the correct paths on your machine.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home

Open JVM’s Info.plist at $JAVA_HOME/../Info.plist and add the highlighted lines to JVMCapabilities array:arrays
Create a symlink for libjvm.dylib as follows:

sudo mkdir –p /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bundle/Libraries
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/server/libjvm.dylib

/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bundle/Libraries/libserver.dylib

Note: Correct the version number (in jdk1.7.0_79.jdk) path in the above example to make it point to the correct path on your machine.
Set java.library.path by adding the following lines at the end of “/Applications/Adobe Flash Builder 4.7/Adobe Flash Builder

4.7.app/Contents/MacOS/Adobe Flash Builder 4.7.ini”。

-Djava.library.path=../../../eclipse/plugins/com.adobe.flexide.nativelibs_4.7.0.349722/os/macosx/:../../../eclipse /plugins/com.adobe.flexide.amt_4.7.0.349722/os/macosx/:../../../eclipse/plugins/com.adobe.flexbuilder.utils.osnative_4.7.0.349722/os/macosx /

重新启动计算机并启动 Flash Builder。可能的错误

如果您尝试在 Mac OS 10.12 上启动 Flash Builder 并看到 如下错误:

java.lang.RuntimeException:应用程序 “com.adobe.flexbuilder.standalone.FlashBuilderApplication”不能 可以在注册表中找到。可用的应用程序有: org.eclipse.ant.core.antRunner, org.eclipse.ant.ui.antRunner, org.eclipse.equinox.app.error,org.eclipse.equinox.p2.director, org.eclipse.equinox.p2.garbagecollector.application, org.eclipse.equinox.p2.publisher.InstallPublisher, org.eclipse.equinox.p2.publisher.EclipseGenerator, org.eclipse.equinox.p2.publisher.ProductPublisher, org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher, org.eclipse.equinox.p2.reconciler.application, org.eclipse.equinox.p2.repository.repo2runnable, org.eclipse.equinox.p2.repository.metadataverifier, org.eclipse.equinox.p2.artifact.repository.mirrorApplication, org.eclipse.equinox.p2.metadata.repository.mirrorApplication, org.eclipse.equinox.p2.updatesite.UpdateSitePublisher, org.eclipse.equinox.p2.publisher.UpdateSitePublisher, org.eclipse.equinox.p2.publisher.CategoryPublisher, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool, org.eclipse.jdt.apt.core.aptBuild, org.eclipse.jdt.core.JavaCodeFormatter, org.eclipse.ui.ide.workbench, org.eclipse.update.core.standaloneUpdate, org.eclipse.update.core.siteOptimizer。在 org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248) 在 org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 在 org.eclipse.equinox.launcher.Main.run(Main.java:1410)

在 /Applications/Adobe Flash Builder 中找到名为“p2”的目录 4.7/ 并删除它。 Flash Builder 现在应该会启动。

【讨论】:

【参考方案2】:

此修复适用于我在 Windows 上使用 FlashBuilder 4.7。

确保JDK 1.8安装正常。

删除(重命名)FlashBuilder 附带的 JDK1.6 文件夹:

C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\jre

我将它重命名为jre-removed-to-force-java1.8,但无论如何。

【讨论】:

您安装了 Mac Sierra 还是手动升级了 Java?【参考方案3】:

对我来说,这个解决方案是从 Phendrax 在这个页面上工作的:https://forums.adobe.com/thread/2218793

安装 Java 1.8 后, 转到“C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)”(或您的 Flash Builder 安装目录)并将文件夹“jre”重命名为其他名称(如“_jre”), 然后转到您的 Java 1.8 安装目录(对我来说是“C:\Program Files\Java\jdk1.8.0_101”), 并将“jre”文件夹从 Java 1.8 目录复制到 Flash Builder 目录

【讨论】:

【参考方案4】:

对于任何感兴趣的人,我通过在 adt java 任务中添加一个“-tsa”参数,用我们的 ant build.xml 解决了这个问题

<!-- Load properties -->
<property file="$basedir$file.separatorbuild$file.separatorbuild.properties" />

<!-- ADT launch -->
<java jar="$flexsdk.adt" fork="true" failonerror="true" maxmemory="1024m">
    <arg line="-package" />
    <arg line="-keystore $project.certificate" />
    <arg line="-storetype pkcs12" />
    <arg line="-storepass $project.storepass" />
    <arg line="-tsa $adt.tsa" />
    <arg line="-target bundle" />
    <arg line="$buildconfig.path" />
    <arg line="$buildconfig.path/$project.name-app.xml" />
    <arg line="-C $buildconfig.path $project.name.swf" />
</java>

使用我们的 build.properties 文件,使用以下 adt.tsa 值

adt.tsa = http://sha256timestamp.ws.symantec.com/sha256/timestamp

【讨论】:

以上是关于创建 AIR 文件时出错:无法生成时间戳:握手期间远程主机关闭连接的主要内容,如果未能解决你的问题,请参考以下文章

AWS AppSync - 订阅握手期间出错

Spring Boot - WebSocket 握手期间出错

“WebSocket 握手期间出错:状态行无效”

WebSocket 握手期间出错:意外的响应代码:302

发布IOS AIR时创建文件时出错

WebSocket 连接失败。 WebSocket握手期间出错-socketjs