【发布时间】:2013-10-22 15:48:57
【问题描述】:
我正在创建一个将值传递给现有应用程序的 ANE。我已经编写并测试了 Android/Java,它按预期工作。
我已经对 AS3 进行了编码,我在调试时遇到了我的 ExtensionContext = null 的情况。我正在使用 Fb 4.7 Pro、Air 3.8 和 Eclipse 的 Google ADT 版本。
我将在下面分享我的代码:
ActionScript 库项目
extension.xml
<extension xmlns="http://ns.adobe.com/air/extension/3.8">
<id>com.applications.ps</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>ps.jar</nativeLibrary>
<initializer>com.applications.ps.PExtension</initializer>
<finalizer>com.applications.ps.PExtension</finalizer>
</applicationDeployment>
</platform>
</platforms>
PInterface.as
package
{
import flash.events.EventDispatcher;
import flash.external.ExtensionContext;
public class PInterface
{
private var extContext:ExtensionContext;
public function PInterface()
{
trace("in PExtension Constructor");
if (!extContext) {
trace("Creating extension context.");
extContext = ExtensionContext.createExtensionContext("com.applications.ps",null);
trace(" extContext: "+extContext);
if (extContext){
//extContext.call("initPrint");
trace("created extension context.");}
else{
trace("Failed to create extension context.");
}
}
}
public function aneFunction(name:String):void {
extContext.call("functionA",name);
}
}
}
我的结果一直是 extContext = null。
只有在 extensionID 不匹配或 Initializer 不起作用时才会发生这种情况。
在我看来一切都很好......
我在 Eclipse/ADT 中的 Android 应用程序的包名称为 com.applications.ps。
【问题讨论】:
-
您是否在应用描述符 XML 中包含了 ANE id?在您的应用描述符中,您需要类似于
的内容,以便 actionscript 运行时识别您的扩展。com.applications.ps -
我最终从头开始重建,并且成功了。一直都是对的,只是 FlashBuilder 中的项目。
标签: android air adobe air-native-extension