Air AdobeAne可以在iOS和Android设备上运行,但不能在空中模拟器上运行

Air AdobeAne可以在iOS和Android设备上运行,但不能在空中模拟器上运行,air,flex4,flash-builder,flex-mobile,air-native-extension,Air,Flex4,Flash Builder,Flex Mobile,Air Native Extension,Adobe提供的应用程序在iOS和Android上的Flex mobile应用程序中运行良好,但当我尝试在Windows 7上从Flash Builder 4.7启动空气模拟器时,我发现错误: 下面是后一个屏幕截图中错误消息的副本: Process terminated without establishing connection to debugger. The content cannot be loaded because there was a problem loading a

Adobe提供的应用程序在iOS和Android上的Flex mobile应用程序中运行良好,但当我尝试在Windows 7上从Flash Builder 4.7启动空气模拟器时,我发现错误:

下面是后一个屏幕截图中错误消息的副本:

Process terminated without establishing connection to debugger.

The content cannot be loaded because there was a problem loading an extension: Error: Requested extension com.adobe.Vibration is not supported for Windows-x86.

Launch command details:  "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\bin\adl.exe" -runtime "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\runtimes\air\win" -profile extendedMobileDevice -screensize 640x920:640x960 -XscreenDPI 326 -XversionPlatform IOS -extdir "C:\Users\xxx\Adobe Flash Builder 4.7\.metadata\.plugins\com.adobe.flexbuilder.project.ui\ANEFiles\MyApp-Mobile\win32\" C:\Users\xxx\Documents\MyApp\mobile\bin-debug\MyApp-app.xml C:\Users\xxx\Documents\MyApp\mobile\bin-debug 
同时:

  • Adobe提供的另一款电子游戏——GameCenter.ANE与AIR Simulator完美结合

  • 当我选择BlackBerry AIR simulator时,上面提到的com.adobe.extensions.Vibration.ane不会失败(但iOS和Android AIR simulator不工作)

  • 有没有办法让这项工作更舒适

    我想在我的Flex mobile应用程序中使用com.adobe.extensions.Vibration.ane,但我还想使用AIR simulator-不评论源代码,也不从项目属性中删除该ane

    2016年更新:

    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            methodThatUsesANE();
        }
    }
    
    private function methodThatUsesANE()
    {
        // execute actual ANE method here
    }
    
    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            // execute actual ANE method here
        }
    }
    

    Adobe已使用64位支持更新了他们的解决方案。

    我过去使用的解决方案如下:

    • 创建一个实用程序类,该类返回您是否在支持ANE的设备上运行。在我的例子中,该类包含一个静态方法,用于检查
      Capabilities.os
      的值。查看它可以返回的值列表

    • 将调用ANE方法的代码放入它们自己的函数中,如果支持ANE,则调用此函数。如果我没记错的话,有必要将使用ANE的代码放在一个单独的函数中,而不仅仅放在If块中,否则同样的错误会在模拟器中发生:

    这样做:

    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            methodThatUsesANE();
        }
    }
    
    private function methodThatUsesANE()
    {
        // execute actual ANE method here
    }
    
    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            // execute actual ANE method here
        }
    }
    
    而不是像这样在一个函数中完成所有操作:

    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            methodThatUsesANE();
        }
    }
    
    private function methodThatUsesANE()
    {
        // execute actual ANE method here
    }
    
    public function doSomethingThatWillUseANE():void
    {
        if (DeviceCapabilities.supportsANE) // static utility class
        {
            // execute actual ANE method here
        }
    }
    

    ANE的问题在于它不是一个完整的实现。最重要的是,ANE没有实现默认的回退实现,如果当前平台没有特定的实现,设备将回退到默认的回退实现

    这使得ANE很难在跨平台开发中使用,因为它在某些情况下会失败。任何未特别包括的平台都会因您收到的消息而失败

    基本上,如果不自己更改电子邮件,您将无法按预期使用它。唯一的方法是进行一些条件式编译,而不是在模拟器中调用ANE。

    如果您确实希望更改ANE,那么最好的选择是实现默认库。这非常简单,但您需要:XCode、带Android开发工具的eclipse和AIRSDK中的adt

    首先,您需要编译现有的项目,Android库、iOS库和现有的actionscript库,以分别生成颤音AndroidLibrary.jar、lib颤音IOSLibrary.a和颤音ActionScriptLibrary.swc

    然后,您需要创建另一个actionscript库,并复制com.adobe.nativeExtensions.Vibration类,如下所示:

    public class Vibration
    {
        public function Vibration()
        {
        }
    
        public static function get isSupported():Boolean
        {
            return false;
        }
    
        public function vibrate(duration:Number):void
        {
        }
    }
    
    如果扩展没有实现,而您没有得到上面的消息,那么这个类将替换另一个类

    然后我们需要将默认定义添加到extension.xml文件中:

    <extension xmlns="http://ns.adobe.com/air/extension/2.5">
        <id>com.adobe.Vibration</id>
        <versionNumber>1</versionNumber>
        <platforms>
            <platform name="Android-ARM">
                <applicationDeployment>
                    <nativeLibrary>VibrationAndroidLibrary.jar</nativeLibrary>
                    <initializer>air.extensions.VibrationExtension</initializer>
                    <finalizer>air.extensions.VibrationExtension</finalizer>
                </applicationDeployment>
            </platform>
            <platform name="iPhone-ARM">
            <applicationDeployment>
                <nativeLibrary>libVibrationiOSLibrary.a</nativeLibrary>
                <initializer>ExtInitializer</initializer>
                <finalizer>ExtFinalizer</finalizer>
                </applicationDeployment>
            </platform>
    
            <platform name="default"> 
                <applicationDeployment /> 
            </platform>
    
        </platforms>
    </extension>
    
    一旦完成,你现在应该有一个新版本的电子邮箱和一个默认的库,这将使它更有用!就我个人而言,我不认为没有它就应该发布一个电子邮件


    如果您需要一个功能齐全的电子设备,您可以查看我们的:

    为ios 64位兼容性而构建的最新振动电子设备也存在同样的问题。我的解决方法是将ane import语句放在实际调用振动方法的函数中,并在android和ios的项目构建路径设置中取消选中ane的include框

    我的应用程序中有一个标志变量(由单独的函数设置),用于标记应用程序是否正在ide中运行。如果标志设置为非IDE模式,则使用振动的视图将仅调用上述振动功能。当我运行ide模拟器时,我仍然会收到一个初始警告,但不是严重错误。当我进行发布构建时,FlashBuilder会强制我在适用的项目构建路径设置中选中ane的包含框(下次要运行模拟器时,我必须再次取消选中)


    它很笨重,但它使使用电子设备的工作变得宜居。adobe没有解决这个问题,这让我非常恼火ReadyToUseExtension\com.Adobe.extensions.Vibration.ane中提取了
    StribrationAndroidLibrary.jar
    libStribrationiosLibrary.a
    。此外,我还省略了adt-command中的
    -storetype pkcs12-keystore YOUR_SIGNING_KEY.p12-storepass KEY_PASSWORD
    部分。不幸的是,您的方法不适用于Adobe Vibration ANE。一个更好的解决方案-我刚刚签约了一个devlooper on upwork来添加一个“默认库”实现的振动电子…现在我可以使用它在调试模式没有问题。请随意使用它:您仍然可以使用默认的库Bernd获得振动ANE?Dropbox链接不再工作。我非常感激!我停止了应用程序,我的文件正在存档备份中。但是,如果我是你的话,我会选择distriqt vibration ane——只要10美元。穿着笨重的旧鞋帮到处乱跑毫无意义