Apache flex 在Flex 3.6 SDK中创建本机扩展时发生ExtensionContext错误
我正在用Flex3.6创建本机扩展。编码本机端然后创建Flex库项目,然后创建.ane文件。最后将.ane文件导入myFlex项目<这就是我遇到的问题。调试应用程序时,出现“1046:Type未找到或不是编译时常量:ExtensionContext”错误。附加了库项目。作为类 提前谢谢Apache flex 在Flex 3.6 SDK中创建本机扩展时发生ExtensionContext错误,apache-flex,air,flash-builder,air-native-extension,Apache Flex,Air,Flash Builder,Air Native Extension,我正在用Flex3.6创建本机扩展。编码本机端然后创建Flex库项目,然后创建.ane文件。最后将.ane文件导入myFlex项目新建>Flex库项目 选中“包含Adobe AIR库”选项 谢谢,但最后我发现该扩展正在Flex v4.6 SDK上运行。所以我使用的FlexSDK中的问题是v3.6。我在SDK v3.6.0的flash.external包中已经看不到ExtensionContext类。这就是问题所在。现在我正在尝试了解FlexV3.6是否支持本机扩展。如果是,请说明如何在v3.6中
package com.extension.samples
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.external.ExtensionContext;
public class NetworkConnectionANE extends EventDispatcher
{
public var _extContext : ExtensionContext;
public function NetworkConnectionANE(target:IEventDispatcher=null)
{
_extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE", null);
super(target);
}
public function Connect(path:String):int
{
return _extContext.call("nativeFunc", path);
}
public function dispose():void
{
_extContext.dispose();
}
}
}
编辑:
我试图在另一个Flex桌面应用程序中使用从库项目创建的.swc文件,但出现了相同的错误还尝试了使用_extContext=ExtensionContext.createExtensionContext(“com.extension.samples.NetworkConnectionANE”和“”)
编辑:关于FlexSDK的问题,在SDK 4.6中没有问题。现在的问题是,如何在Flex3.6SDK的lib项目中使用扩展 我知道ExtensionContext.createExtensionContext()在以下情况下可以为null:
<extension xmlns="http://ns.adobe.com/air/extension/3.5">
<id>com.extension.samples.NetworkConnectionANE</id>
<versionNumber>0.0.1</versionNumber>
....
com.extension.samples.NetworkConnectionANE
0.0.1
....
顺便说一句,您不需要设置ExtensionContext.createExtensionContext调用的第二个参数,除非您想指定特定于操作系统的API(我甚至没有见过这样做的应用程序)在flash builder中的项目上单击鼠标右键,转到项目的属性,并在flex library编译器中添加air库。我遇到了相同的问题,但通过以下方式解决了该问题:
谢谢,但最后我发现该扩展正在Flex v4.6 SDK上运行。所以我使用的FlexSDK中的问题是v3.6。我在SDK v3.6.0的flash.external包中已经看不到ExtensionContext类。这就是问题所在。现在我正在尝试了解FlexV3.6是否支持本机扩展。如果是,请说明如何在v3.6中为本机Ext.@nthere9 Its创建库项目,因为它使用旧版本的AIR。ExtensionContext.createExtensionContext需要AIR 2.5。您可以在xmnlns标记中看到扩展的xml文件中使用了什么(我的示例使用3.5)。为什么需要使用Flex 3.6?ANE-s不应该包含任何Flex代码…你说得对,当我使用3.6创建时,我看到消息“Flex 3.6需要Air v1.5”,但在Air v3.0 for desktop()之后支持本机扩展,感谢+1这是解决
flash.external.ExtensionContext
编译时错误的正确方法