AIR 3 estensioni nativi per Android – posso / come includere librerie di terze parti?

Con tutto il nuovo hype che circonda il supporto di estensione nativo in AIR 3, non ho trovato una sola cosa che conferma o nega che sia ansible includere e utilizzare un JAR esterno all'interno dell'implementazione nativa di Android.

Tutti gli esempi mostrano in pratica la possibilità di collegarsi alle API Android incorporate. Ma cosa succede se qualcuno vuole utilizzare una delle centinaia di librerie che rendono più facile? Certamente sembra che questo dovrebbe essere ansible. Cercherò di descrivere ciò che ho fatto e forse qualcuno vedrà un difetto:

  • Come allineare la linearlayout al centro verticale?
  • Immagine bitmap con angoli arrotondati con corsa
  • java.lang.ClassCastException: android.view.ViewGroup $ LayoutParams non può essere lanciato in android.widget.Gallery $ LayoutParams
  • Errore: ANDROID_HOME non è impostato e il command "android" non è nel tuo PATH. È necessario soddisfare alless una di queste condizioni
  • Richiesta HTTPS che restituisce 2032 errore di stream solo per Android con Flex 4.6 Mobile
  • Eclipse DDMS error "Imansible bind al locale 8600 per il debugger"
    1. Creato con successo la libreria Android in uso, utilizzando le importzioni compilate dalla libreria Android XYZ di terze parti.
    2. Esportto progetto Android come file JAR. Nota: il JAR di terza parte è in / lib all'interno del jar.
    3. Crea la libreria ActionScript (SWC) per l'interface con la libreria Android di origine.
    4. Creato il pacchetto ANE da SWC, extension.xml, Android JAR e library.swc (per Android-ARM di piattaforma, estratto da SWC).
      Nota: hanno anche provato a mettere la libreria di terze parti nella struttura del file qui descritta: http://help.adobe.com/en_US/air/extensions/WSf268776665d7970d-24823354 12ffea65006-8000.html # WSf268776665d7970d-6be13ace1308aaebeca-7fff. Penso che questo sia più orientato all'esecuzione di tipo runtime con JNI o ​​qualsiasi altra cosa, in modo che l'articolo mi abbia lasciato un po 'confuso.
    5. Usato ANE nell'esempio del progetto Flex Mobile.
    6. File APK installato e installato sul dispositivo DroidX test.
    7. È ansible visualizzare correttamente il caricamento dell'applicazione AIR (e le tracce) in LogCat "ActivityManager: Displayed com.me.androidapp/.AppEntry"
    8. Posso vedere correttamente il codice Java nativo di Android che viene richiamato tramite runtime da AIR per creare un'istanza di estensione e context. "mye_native: MyExtension.initialize", "mye_native: MyExtensionContext.createContext"
    9. Appena l'applicazione AIR cerca di call la function nativa, esplode, non riesce a trovare le classi dalla libreria Android di terze parti: E dalvikvm: Could not find class 'com.thirdparty.SomeClass', referenced from method com.me.nativeExtentions.MyExtensionFunction.call

    Qualche idea? Sembra che dovrebbe funzionare in questo modo.

    Una cosa che ho notato è che quando ho soffiato l'APK e Dex da una pura applicazione Android di Java (che ha anche librerie android di terze parti), sembra che le classi della terza parte siano state incluse dentro di essa (non solo un riferimento di jar). Quando faccio la stessa cosa con il mio Flex APK, trovo solo le mie classi Java più di Adobe, e quelle di terze parti non si trovano da nessuna parte che posso vedere.

    Ho postato questo sui forum di Adobe, ma ho pensato che avrei provato il SO think tank. Grazie.

  • Quali sono le opzioni disponibili per gestire l'input di text su Android utilizzando Adobe AIR?
  • Che cosa causa questo errore: "Il componente SDK in aria / android / device / Runtime.apk è obsoleto"
  • AIR / as3 stage keylistener dominante field di input input
  • 2 Solutions collect form web for “AIR 3 estensioni nativi per Android – posso / come includere librerie di terze parti?”

    Devi combinare tutti i tuoi vasetti in uno. Qualcosa come http://code.google.com/p/jarjar/ o il tuo script Ant ti aiuterà.

    Modificato per aggiungere l'esempio: Supponiamo che il file jar principale di estensione sia extension.jar e stai utilizzando il codice in external.jar. Quindi è ansible inserire le classi da external.jar in extension.jar utilizzando lo strumento Java jar:

    jar -xf external.jar

    Ciò estrae i file .class nelle cartelle dei pacchetti. Se il pacchetto di livello superiore è "com", puoi aggiungere quelli a extension.jar con:

    jar -uf extension.jar com

    (Ripeti il ​​secondo command per each pacchetto di livello superiore nel jar esterno.)

    Potresti anche combinare manualmente i vasetti della libreria facendoli trasformarli in file zip (li rinominali in .zip) e copiate le classi dalla biblioteca di terze parti in quella principale e rinominate quella nuovamente a .jar

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.