3 votes

Erreur ExtensionContext lors de la création d'une extension native dans le SDK Flex 3.6

Je suis en train de créer une extension native avec Flex 3.6. J'ai codé le côté natif puis j'ai créé un projet de bibliothèque Flex et ensuite un fichier .ane. Enfin, j'ai importé le fichier .ane dans le projet myFlex.
Voici le problème que j'ai rencontré. Pendant que je débogue l'application, l'erreur "1046 : Type was not found or was not a compile-time constant : ExtensionContext" se produit. J'ai joint le projet Library .as class .

Merci d'avance

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();
        }
    }
}

Modifier : J'ai essayé d'utiliser le fichier .swc créé à partir du projet de bibliothèque dans une autre application Flex Desktop, mais la même erreur s'est produite
J'ai également essayé avec _extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE","") ;
Edit : Le problème concerne le SDK Flex, pas de problème avec le SDK 4.6. Maintenant la question est, Comment utiliser l'extension dans le projet lib dans Flex 3.6 SDK ?

6voto

Ullas Hunka Points 1875

Cliquez avec le bouton droit de la souris sur le projet dans flash builder, allez dans les propriétés du projet et ajoutez les bibliothèques d'air dans le compilateur de bibliothèques flex.

1voto

NSR Points 413

J'ai eu le même problème mais il a été résolu de la manière suivante :

  1. File > New > Flex Library Project
  2. Cochez l'option "Inclure les bibliothèques Adobe AIR".

-1voto

sydd Points 413

Comme je le sais, ExtensionContext.createExtensionContext() peut être nul dans ces cas :

  1. L'appel n'est pas dans un fichier .ane. Vous ne pouvez pas l'appeler à partir d'un fichier .swc ou .swf. En d'autres termes, il doit être compilé dans un fichier .ane avant de l'appeler.

  2. Vous essayez d'utiliser l'extension dans une plateforme qui n'est pas supportée par l'extension. Par exemple, vous essayez d'utiliser une extension iOS sur un PC.

  3. L'ID de l'extension n'existe pas. L'ID de l'extension doit être le même que celui que vous spécifiez dans le fichier extension.xml like :

    <extension xmlns="http://ns.adobe.com/air/extension/3.5">
        <id>com.extension.samples.NetworkConnectionANE</id>
        <versionNumber>0.0.1</versionNumber>
        ....

En fait, il n'est pas nécessaire de définir le second paramètre de l'appel ExtensionContext.createExtensionContext, sauf si vous voulez spécifier des API spécifiques au système d'exploitation (je n'ai même pas vu d'applications qui font cela).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X