Dynamically linking Native Extensions
Hey guys,
I’m using the NetworkInfo ANE to monitor which band a user is connected to. My issue is that when I include this ANE in my classpath, it will only compile for iOS. It will not compile correctly for desktop as the ANE is incompatible and FDT throws a fit.
What is the best way to dynamically link external ane’s? Is there a specific compiler argument I can use?
I’m currently having to un-link manually when I’m testing on Desktop and it’s really annoying!
Thanks for any help
Detailed roadmap information and timelines can be shared under a Non Disclosure Agreement. Contact your local Adobe rep for more information.
Alternatively, join the AIR 3 private pre-release program (in iOS, Android and Playbook) or check out the release notes for the AIR public beta on http://labs.adobe.com/ (only covers AIR desktop at the time of writing).
Similar Messages
-
Problems adding native extensions from linked resources in Flash Builder 4.7
While adding native extensions (.ane files) from linked source folder in a Actionscript Mobile Project on Flash Builder 4.7, a java.lang.NullPointerException is thrown. Below is the stacktrace. Any help would be appreciated.
Also, what is the link/site to file Flash Builder 4.7 bugs?
java.lang.NullPointerException
at com.adobe.flexbuilder.project.ui.utils.ANE.AppXMLFileANEExtensionHandler.addToAppXMLModel (AppXMLFileANEExtensionHandler.java:78)
at com.adobe.flexbuilder.project.ui.utils.ANE.AppXMLFileANEExtensionHandler.addToAppXmlFile( AppXMLFileANEExtensionHandler.java:65)
at com.adobe.flexbuilder.project.ui.utils.ANE.AppXMLFileANEExtensionHandler.addToAppXmlFile( AppXMLFileANEExtensionHandler.java:48)
at com.adobe.flexbuilder.project.ui.utils.ANE.ANEController.applyWorkingCopy(ANEController.j ava:791)
at com.adobe.flexbuilder.project.ui.utils.ANE.ANEController.applyWorkingCopy(ANEController.j ava:814)
at com.adobe.flexbuilder.project.ui.utils.ANE.ANEpathControl.contributeToLibraryPath(ANEpath Control.java:723)
at com.adobe.flexbuilder.project.ui.utils.AirBuildPathsPropertiesPane.contributeToLibraryPat h(AirBuildPathsPropertiesPane.java:85)
at com.adobe.flexbuilder.project.ui.utils.AbstractBuildPathsPropertiesPane.getLibraryPath(Ab stractBuildPathsPropertiesPane.java:1344)
at com.adobe.flexbuilder.project.ui.properties.BuildPathsPropertyPage.applyProjectSettings(B uildPathsPropertyPage.java:520)
at com.adobe.flexbuilder.project.ui.properties.AbstractFlexProjectPropertyPage.performOk(Abs tractFlexProjectPropertyPage.java:117)
at com.adobe.flexbuilder.project.ui.properties.BuildPathsPropertyPage.performOk(BuildPathsPr opertyPage.java:617)
at org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.java:964)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:944)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(FilteredPreferenceDial og.java:447)
at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:233)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:158)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionI tem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java :411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at com.adobe.flexbuilder.standalone.FlashBuilderApplication.start(FlashBuilderApplication.ja va:79)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLau ncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.jav a:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)A year later, but I'm facing the same bug.
If your ever found a solution I'd be glad to hear.
I filed a bug with more details and my own workaround:
3697022 -
Hi,
I’m working on an app with an iOS native extension that uses Accelerate.framework, and I'm stuck at the packaging phase, after successfully creating an .ane file
When I run the final packaging command (-target ipa-test), I get the following errors:
ld warning: unexpected srelocation type 9
ld warning: unexpected srelocation type 9
... (repeating several times)
Undefined symbols:
"_vDSP_vsdiv", referenced from: ...
"_vDSP_vsmul", referenced from: ...
"_vDSP_sve", referenced from: ...
"_vDSP_vflt16", referenced from: ...
"_vDSP_create_fftsetup", referenced from: ...
"_vDSP_ctoz", referenced from: ...
"_vDSP_fft_zrip", referenced from: ...
"_vDSP_vmul", referenced from: ...
"_vDSP_zvmags", referenced from: ...
ld: symbol(s) not found
Compilation failed while executing : ld64
I guess this is because when I created the .a file in xcode, it couldn’t really link it statically to the Accelerate.framework.
I suppose I need to tell adt to link it somehow? Probably in the phase I’m creating the .ane file? Or maybe I should change my extension.xml file?
No idea. Couldn’t really find it...
Please advise.Use -platformsdk switch while packaging your IPA.
-
Problems creating a Native Extension linking to a static library
Hi,
I'm trying to create my own Native Extension for iOs that will use another static library.
My problem occurs when I try to package my app with ADT: after a lot of "ld warning: unexpected srelocation type 9" , I get a final error : "ld: thumb bl/blx out of range (-4468380 max is +/-4M)"
This may be caused by the fact that the static library I am using needs the gcc setting "compile for thumb" turned off. I've done that in XCode to get my .a file to generate my .ane, but how could I tell ADT to take it into account ?
Thank you for your help !Are you compiling for ARMv6 or ARMv7?
With armv7, you do not need to switch off the "compile for thumb" anyways.
Also, I guess you are using an iOS version greater than 4.3 to compile your native library. In this case, using -platformsdk switch of adt, while packaging your application might just resolve your issue.(You will see some ld 4-byte alignment warnings, but thats ok)
-Neha -
Unable To Build iOS App Using Native Extension
I’m trying to create a native extension for iOS and use that extension as part of an IPA app for iOS I create from a SWF file using the ADT tool (i.e. the normal use-case for iOS). Note: I have already successfully created the native extension and APK app for Android and now I am trying to build the iOS side.
I have been primarily using the information found at the following websites:
http://www.adobe.com/devnet/air/articles/building-ane-ios-android-pt3.html
http://www.adobe.com/devnet/air/articles/building-ane-ios-android-pt5.html
http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac35eb7b4e12cddc5fbbb-8000.html
I have also searched the Adobe forums for the answer to my question without success.
The error I receive is:
ld: warning: ignoring file /var/folders/c3/mpg4frwn2j1f8scw4jctbmv9hfkswj/T/bd3fbd4a-cf56-4fd6-a06d-d69ea92dc620/lib com.mycompany.MyExtension.a, file was built for archive which is not the architecture being linked (armv7): /var/folders/c3/mpg4frwn2j1f8scw4jctbmv9hfkswj/T/bd3fbd4a-cf56-4fd6-a06d-d69ea92dc620/lib com.mycompany.MyExtension.a
Undefined symbols for architecture armv7:
"_MyExtensionInitializer", referenced from:
_g_com_adobe_air_fre_fmap in aotInfo.o
"_MyExtensionFinalizer", referenced from:
_g_com_adobe_air_fre_fmap in aotInfo.o
ld: symbol(s) not found for architecture armv7
Compilation failed while executing : ld64
I receive the above error when I execute the following command:
adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore certificate.pfx -provisioning-profile provisioning_profile.mobileprovision MyApp.ipa MyApp.xml MyApp.swf -extdir packaged-extensions
where the folder “packaged-extensions” contains the ANE file I created using this command:
adt -package -target ane packaged-extensions/MyExtension.ane MyExtension.xml -swc MyExtension.swc -platform Android-ARM -platformoptions platformAndroidARM.xml -C dependencies . -C platform/Android . -platform iPhone-ARM -platformoptions platformiOSARM.xml -C platform/IOS . -platform default -C platform/default library.swf
where the content of the files are as follows:
MyApp.xml:
<application xmlns="http://ns.adobe.com/air/application/4.0">
<id>MyApp</id>
<versionNumber>0.0.1</versionNumber>
<filename>MyApp</filename>
<initialWindow>
<content>MyApp.swf</content>
<visible>true</visible>
<width>600</width>
<height>600</height>
</initialWindow>
<supportedProfiles>mobileDevice</supportedProfiles>
<extensions>
<extensionID>com.mycompany.MyExtension</extensionID>
</extensions>
</application>
MyExtension.xml:
<extension xmlns="http://ns.adobe.com/air/extension/4.0">
<id>com.mycompany.MyExtension</id>
<versionNumber>0.0.1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>MyExtension.jar</nativeLibrary>
<initializer>com.mycompany.MyExtension</initializer>
</applicationDeployment>
</platform>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>libMyExtensionIOSLibrary.a</nativeLibrary>
<initializer>MyExtensionInitializer</initializer>
<finalizer>MyExtensionFinalizer</finalizer>
</applicationDeployment>
</platform>
<platform name="default">
<applicationDeployment/>
</platform>
</platforms>
</extension>
platformiOSARM.xml:
<platform xmlns="http://ns.adobe.com/air/extension/4.0">
<linkerOptions>
<option>-ios_version_min 5.1</option>
<option>-liconv</option>
</linkerOptions>
</platform>
MyExtensionIOSLibrary.m (yes, I know it doesn't do anything - it's simple on purpose to help isolate the error):
#import "FlashRuntimeExtensions.h"
void MyContextInitializer(void* extData, const uint8_t *ctxType, FREContext ctx, uint32_t *numFunctionsToTest, const FRENamedFunction **functionsToSet) {
return;
void MyExtensionInitializer(void **extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet) {
*extDataToSet = NULL;
*ctxInitializerToSet = &MyContextInitializer;
void MyExtensionFinalizer(void *extData)
return;
I am using XCode to build MyExtensionIOSLibrary.m into a library file with a .a filename extension. My relevant build settings are:
iOS Deployment Target: iOS 5.1
Architectures: armv7
Build Active Architectures Only: No
Product Scheme: Release
Compile Sources As: Objective-C
Any ideas? Please help.Thanks for the reply.
yes.I've created a static library with 3rd party frameworks and pulled the .a from product folder(Debug-iphoneos).
and the framework didn't work(armv7 not supported error occurs ..don't know why) with it's original folder structure .
so I followed below link to change folders inside the 3rd party framework and figured out but now the application crashes on startup without giving an error message. .
スタッフ日記 - 【ANE作成】外部フレームワーク を含むANE作成時の注意点(iOS) | 株式会社マリエッタ -
My company is developing a game for the iPhone and iPad devices using Flash cs5.5 and Air3.0
The client requires that certain features be supported - such things like GameCenter, Rating system, etc... none of which is currently supported by flash for the iOS.
However, they did provide us with a bunch of xCode sample files on how they want things to work.
My idea was to bridge the gap in functionality by creating a native exention that utilized the xcode source that was given to me, thus giving me the functionality that is required.
But first, I need to actually CREATE a native extension, even just a basic echo/hello world... I have followed all the steps from various guides and tutorials and I have managed to create an ipa and put it on my iPad2 to test, but when the program starts up, nothing happens, I am left with a black screen. When I comment out the lines of code that intialize the extension, it fires up just fine.
(and yes, I even tried to put things in try blocks in case there was an error - no luck)
So I am hoping that someone can read through the process of what I am doing below and point out what I am doing wrong, or what I am missing.
What I am using:
Mac Mini running OSX 10.7.2 - this is used to run xCode 4.1 build 4B110
PC - Windows 7 home 64bit - Running Flash CS5.5 (version 11.5.1.3469) with the AIR 3.0 SDK inside it. I also have the AIR 3.0 sdk in a seperate folder for command line running. (This is my primary developement platform)
The PC does have flash builder installed, but I have never really used it, nor do I know how to use it... everything that has been built to date has been done using Flash CS5.5
So, this is what I have done.
The first thing I do is create a .a static library on the mac.
I open xcode and create a new project.
Select iOS Framework and Library, then select "Cocoa touch Static Library"
Give it a name, in this case "EchoExtension" and put it in a folder.
I then delete the EchoExtension.h file as all the samples I have seen to date don't use it.
I then add "FlashRuntimeExtension.h" to the project from the AIR3.0 sdk frameworks folder on my PC
I then delete everything in my .m file and, following several different examples and tutorials, type up the following code:
// EchoExtension.m
// EchoExtension
#include "FlashRuntimeExtensions.h"
FREObject echo(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) {
return argv[0];
//----------- Extention intializer and finalizer ----------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------ -
// A native context instance is created
void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) {
// setup the number of functions in this extention
// for easy reference, set the number of function that this extention will use.
int FunctionCount = 1;
// set the pointer reference to the number of function this extention will use.
*numFunctionsToTest = FunctionCount;
// create an array to store all the functions we will use.
FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*FunctionCount);
// create an array entry for each function
func[0].name = (const uint8_t*)"echo"; // the name of the function
func[0].functionData = NULL; // the data type
func[0].function = &echo; // reference to the actual function
// save the array in a pointer.
*functionsToSet = func;
// A native context instance is disposed
void ContextFinalizer(FREContext ctx) {
return;
// Initialization function of each extension
void ExtInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet) {
*extDataToSet = NULL;
*ctxInitializerToSet = &ContextInitializer;
*ctxFinalizerToSet = &ContextFinalizer;
// Called when extension is unloaded
void ExtFinalizer(void* extData) {
return;
I then go "Product", "Build" and it creates libEchoExtension.a
I copy this .a file over to my PC.
I am now finish with that god foresaken mac (*shudders*)
Back on my PC, I create a folder for my test project. For all intents an purposes, let's call this "D:\src\EchoExtension" I then create 2 folders, one called "lib" and one called "app". Lib is where I will create the actionscript source for my extension.
In my lib folder, I create a new fla in flash cs5.5 called "EchoExtension.fla"
I create in my lib folder, the following:
com\extensions\EchoExtension\EchoExtension.as
a folder called "Build" in which I place my libEchoExtension.a file.
in my EchoExtension.as file, I place the following code:
package com.extensions.EchoExtension
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.external.ExtensionContext;
public class EchoExtension extends EventDispatcher
protected var _extensionContext:ExtensionContext;
* Constructor.
public function EchoExtension()
super();
// Initialize extension.
_extensionContext = ExtensionContext.createExtensionContext( "com.extensions.EchoExtension", "main" );
public function echo(Prompt:String):String
return _extensionContext.call( "echo" ) as String;
In my main fla, on the first layer of the time line, I simply put the following code to make sure that the as file get's included when I publish the swc.
import com.extensions.EchoExtension.EchoExtension;
var ext:EchoExtension = new EchoExtension();
stop();
I then open up my fla's publish settings, turn off the swf - which I don't need, and check the swc and make sure that it outputs into my build folder. "./Build/EchoExtension.swc"
I also set the player to Air 3.0 (which I can do since I have successfully integrated AIR 3.0 along side my AIR 2.6 and can build both without any problems)
I then publish the swc. So far, so good. No problems.
I then make a copy of the swc and rename it to EchoExtension.swc.zip, at which point I extract the library.swf file from it and also place it in my build folder.
I then create extension.xml in by build folder which contains the following code:
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>com.extensions.EchoExtension</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>libEchoExtension.a</nativeLibrary>
<initializer>ExtInitializer</initializer>
<finalizer>ExtFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
Now, at this point I am a little wary, because I am building for the iPad2... the platform is iPhone... I thought that may be a problem and at one point I tested the same build on the iPhone4 and had the same results. I have also tested it using the platform name of iPad-ARM and got the same results... So I don't think that is the problem, but I am unsure.
Now, to make things easier, I created a batch file called "buildane.bat" in my build folder. This is what I will use to create my .ane file and it contains the following command line:
D:\SDKs\AirSDK30\bin\adt -package -target ane EchoExtension.ane extension.xml -swc EchoExtension.swc -platform iPhone-ARM library.swf libEchoExtension.a
I then open a command prompt and run buildane.bat and poof. My ane is created. My build folder has the following files in it now:
buildane.bat
EchoExtension.ane
EchoExtension.swc
EchoExtension.swc.zip
extension.xml
libEchoExtension.a
library.swf
Now that I have my swc, ane, and all that, it's time to create my sample application that will be used to test my new extension.
I go back to my D:\src\EchoExtension folder and go into the app folder I created ealier.
I then create a new flash project called EchoExtensionTester.fla
I open the action script settings, library paths, and add the swc that I created in my D:\src\EchoExtension\lib\build folder to my project.
On my stage, I create an input text field called txtInput, a dynamic text field called txtEcho, and a couple of buttons called btnClear, btnRuntime, and btnEcho
I open up the first layer in the time line and place the following code:
// basic imports.
import flash.desktop.NativeApplication;
import flash.events.MouseEvent;
import flash.text.TextField;
// import the extension from our swc.
import com.extensions.EchoExtension.EchoExtension;
// set our input text field to need the softkeyboard
txtInput.needsSoftKeyboard = true;
// add the event handlers to our buttons.
btnEcho.addEventListener(MouseEvent.CLICK, btnEcho_Click);
btnClear.addEventListener(MouseEvent.CLICK, btnClear_Click);
btnRunTime.addEventListener(MouseEvent.CLICK, btnRunTime_Click);
// create our extension variable.
var ext:EchoExtension;
try
// initialize our echo extension.
ext = new EchoExtension();
} catch (e:Error) {
txtEcho.text = "Error trying to create new EchoExtension:\n\n" + e;
stop();
// clear the echo text field
function btnClear_Click(e:MouseEvent):void
txtEcho.text = "";
// just for testing, put the current version of air runtime into our text field so we can make sure we are running air 3.0
function btnRunTime_Click(e:MouseEvent):void
txtEcho.text += "\nRuntime version = " + NativeApplication.nativeApplication.runtimeVersion;
// call the extension, passing it whatever is in the input text field and have it return it and place it in our echo text field
function btnEcho_Click(e:MouseEvent):void
txtEcho.text += "\n";
try
txtEcho.text += ext.echo(txtInput.text);
} catch (e:Error) {
txtEcho.text += "\nError calling ext.echo: " + e;
I then save the project, Open the Air for iOS settings and set the following: (but yes, I know... I am going to have to use adt to do the build, but I need to create the swf first)
Output file: EchoExtensionTester.ipa
Appname: EchoExtensionTester
Version 1.0
Landscape
Fullscreen On
Auto orientation is off
rendering GPU
device: iPad and iPhone
Res: High
Deployement: I use my certificate and provisionging profile that I use for my Primary project (which work) and set for device testing.
I close the window and save again... but before I publish, I open newly created "EchoExtensionTester-app.xml" that is in my app folder.
I add <extensions> <extensionID>com.extensions.EchoExtension</extensionID> </extensions> to the xml file so now it looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<application xmlns="http://ns.adobe.com/air/application/3.0">
<extensions>
<extensionID>com.extensions.EchoExtension</extensionID>
</extensions>
<id>EchoExtensionTester</id>
<versionNumber>1.0</versionNumber>
<filename>EchoExtensionTester</filename>
<description/>
<!-- To localize the description, use the following format for the description element.<description><text xml:lang="en">English App description goes here</text><text xml:lang="fr">French App description goes here</text><text xml:lang="ja">Japanese App description goes here</text></description>-->
<name>EchoExtensionTester</name>
<!-- To localize the name, use the following format for the name element.<name><text xml:lang="en">English App name goes here</text><text xml:lang="fr">French App name goes here</text><text xml:lang="ja">Japanese App name goes here</text></name>-->
<copyright/>
<initialWindow>
<content>EchoExtensionTester.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<fullScreen>true</fullScreen>
<aspectRatio>landscape</aspectRatio>
<renderMode>gpu</renderMode>
<maximizable>true</maximizable>
<minimizable>true</minimizable>
<resizable>true</resizable>
<autoOrients>false</autoOrients>
</initialWindow>
<icon/>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
<iPhone>
<InfoAdditions>
<![CDATA[<key>UIDeviceFamily</key><array><string>1</string><string>2</string></array>]]>
</InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>
</application>
I save the changes to the xml and go back to flash. I then publish.
The swf is created as it should be, but then I get the error message:
Error creating files.
An implmentation for native extension 'com.extensions.EchoExtension' required by the application was not found for the target platform.
Now, while this is a pain in the rear, I new this was going to happen because in my reading of tutorials and samples, they all said that you must use adt to build the ipa... but that's fine... all I wanted anyway was the swf, which I now have in my app folder.
I close down flash as I don't need it anymore and I create a new batch file: (note: I change the names of the cert, provision profile, and password for this post)
cls
"D:\SDKs\AirSDK30\bin\adt" -package -target ipa-ad-hoc -storetype pkcs12 -keystore "D:\src\mycert.p12" -storepass MYPASSWORD -provisioning-profile "D:\src\myprovfile.mobileprovision" "EchoExtensionTester.ipa" "EchoExtensionTester-app.xml" "EchoExtensionTester.swf" -extdir ../lib/Build
set /p dummy=
echo done
I then open a command window in my app folder and run build.bat...
I wait about 2 minutes....
YAY! My ipa file has been created with no errors reported so far.... Time to copy this bad boy to the iPad and see what happens.
I open iTunes, drag "EchoExtensionTester.ipa" over to the Apps, then sync my device....
YAY! iTunes has successfully installed the ipa on the device... and there is by bright and shiney blank icon for Echo Extension Tester...
I open the app.... and.....
nothing.
I wait
still nothing.
I go to the bathroom.
I get back... still nothing... just a black screen.
I press the iPad home button, the app minimized, I restore it... nothing... black screen.
hrm. Time to do a little trial and error to see if I can figure out where the break down is.
As a test, I open my fla and I comment out the following lines:
ext = new EchoExtension();
txtEcho.text += ext.echo(txtInput.text);
I then rebuild the swf... get the same error (don't care)... I then rebuild the ipa using the batch file.... and re-install it on the device when it's done.
The exact same thing....
I open the xml file... and remove the <extensionID>com.extensions.EchoExtension</extensionID> line, save and re-run the batch file again... wait for the ipa to finish, and run it on the device.
I fire up the program on the iPad and it launches perfectly... except for the commented line of code to actually create and call the extension, everything works as it should. The runtime on the device is reporting as 3.0.0.4080
As a test, I open the .fla back up and uncomment the 2 lines I commented out above... keeping the extensionID out of the xml file, I re-publish the ipa.... of course, this time, it actually creates the ipa from flash because the extension id is not in the xml.
I put the ipa file with the extension code in place on the ipad... Fire it up and put some text into the txtInput and press the echo button. I get the following error:Error calling ext.echo: TypeError: Error #1009
I suspect that is because I failed into include the extension in the descriptor... but when I build it with the extensionid in the xml, I just get a black screen. I am 99% sure that the extension context in the ext object is null (because that is what happens when I run it in flash debug without the extension lines in the xml)
And here I am stuck.
Can anyone tell me what I am doing wrong or what I have forgotten to do?
Thanks.I have been trying to get the remote debugging working with my flash and ipad2... but I can't seem to figure it out. I looked at several tutorials, but the ipad build just doesn't want to seem to connect to the flash remote debugger.
Anyway... here is a little more information.
I moved the initialization of the extension from the start of the application to the button event itself. Now, the application will start up exactly as it's supposed to, but when I press the button that creates and initalizes the extension and does the echo call, the application crashes.
Here is the new code:
// basic imports.
import flash.desktop.NativeApplication;
import flash.events.MouseEvent;
import flash.text.TextField;
// import the extension from our swc.
import com.extensions.EchoExtension.EchoExtension;
// set our input text field to need the softkeyboard
txtInput.needsSoftKeyboard = true;
// add the event handlers to our buttons.
btnEcho.addEventListener(MouseEvent.CLICK, btnEcho_Click);
btnClear.addEventListener(MouseEvent.CLICK, btnClear_Click);
btnRunTime.addEventListener(MouseEvent.CLICK, btnRunTime_Click);
txtEcho.text += "Initialization complete.\n";
stop();
// clear the echo text field
function btnClear_Click(e:MouseEvent):void
txtEcho.text = "";
// just for testing, put the current version of air runtime into our text field so we can make sure we are running air 3.0
function btnRunTime_Click(e:MouseEvent):void
txtEcho.text += "Runtime version = " + NativeApplication.nativeApplication.runtimeVersion +"\n" ;
// call the extension, passing it whatever is in the input text field and have it return it and place it in our echo text field
function btnEcho_Click(e:MouseEvent):void
// create our extension variable.
try
var ext:EchoExtension = new EchoExtension();
txtEcho.text += ext.echo(txtInput.text) +"\n" ;
ext = null;
} catch (err:Error) {
txtEcho.text += "Error: " + err.message +"\n" ;
Now, program crashes are an entirely different animal because the ipad creates a crash log! YAY!
this is what the crash log contains:
Incident Identifier: 4BF67A2C-FD36-495D-BB56-B3DCA4772EB8
CrashReporter Key: 7a4dd56d46eb23a7701ad55245de2bca11c48b32
Hardware Model: iPad2,2
Process: EchoExtensionTester [9272]
Path: /var/mobile/Applications/90B3B31D-F516-4094-BE3B-88E1324419EC/EchoExtensionTester.app/Ech oExtensionTester
Identifier: EchoExtensionTester
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-10-28 14:17:48.145 -0300
OS Version: iPhone OS 4.3.5 (8L1)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 EchoExtensionTester 0x00813aac 0x1000 + 8465068
1 EchoExtensionTester 0x005f88ec 0x1000 + 6256876
2 EchoExtensionTester 0x00372ba4 0x1000 + 3611556
3 EchoExtensionTester 0x006dd7c8 0x1000 + 7194568
4 EchoExtensionTester 0x006dd25c 0x1000 + 7193180
5 EchoExtensionTester 0x006de304 0x1000 + 7197444
6 EchoExtensionTester 0x006dc750 0x1000 + 7190352
7 EchoExtensionTester 0x006730cc 0x1000 + 6758604
8 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
9 EchoExtensionTester 0x006dc750 0x1000 + 7190352
10 EchoExtensionTester 0x006730cc 0x1000 + 6758604
11 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
12 EchoExtensionTester 0x006dc750 0x1000 + 7190352
13 EchoExtensionTester 0x006730cc 0x1000 + 6758604
14 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
15 EchoExtensionTester 0x0032fc90 0x1000 + 3337360
16 EchoExtensionTester 0x00329e1c 0x1000 + 3313180
17 EchoExtensionTester 0x0032171c 0x1000 + 3278620
18 EchoExtensionTester 0x0032179c 0x1000 + 3278748
19 EchoExtensionTester 0x0032ae00 0x1000 + 3317248
20 EchoExtensionTester 0x00137328 0x1000 + 1270568
21 EchoExtensionTester 0x004f9a5c 0x1000 + 5212764
22 EchoExtensionTester 0x00035adc 0x1000 + 215772
23 EchoExtensionTester 0x002f6824 0x1000 + 3102756
24 EchoExtensionTester 0x002f7f18 0x1000 + 3108632
25 UIKit 0x35ef9bee 0x35ede000 + 113646
26 UIKit 0x35ef9568 0x35ede000 + 111976
27 UIKit 0x35ee230c 0x35ede000 + 17164
28 UIKit 0x35ee1c4c 0x35ede000 + 15436
29 GraphicsServices 0x321e9e70 0x321e5000 + 20080
30 CoreFoundation 0x316f3a90 0x3167e000 + 481936
31 CoreFoundation 0x316f5838 0x3167e000 + 489528
32 CoreFoundation 0x316f6606 0x3167e000 + 493062
33 CoreFoundation 0x31686ebc 0x3167e000 + 36540
34 CoreFoundation 0x31686dc4 0x3167e000 + 36292
35 GraphicsServices 0x321e9418 0x321e5000 + 17432
36 GraphicsServices 0x321e94c4 0x321e5000 + 17604
37 UIKit 0x35f0cd62 0x35ede000 + 191842
38 UIKit 0x35f0a800 0x35ede000 + 182272
39 EchoExtensionTester 0x001819e4 0x1000 + 1575396
40 EchoExtensionTester 0x00813a6c 0x1000 + 8465004
Thread 1:
0 libsystem_kernel.dylib 0x35afe3ec 0x35aec000 + 74732
1 libsystem_c.dylib 0x31bf06d8 0x31bbc000 + 214744
2 libsystem_c.dylib 0x31bf0bbc 0x31bbc000 + 215996
Thread 2 name: Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0 libsystem_kernel.dylib 0x35afefbc 0x35aec000 + 77756
1 libdispatch.dylib 0x31660ed4 0x31660000 + 3796
2 libdispatch.dylib 0x31661f3a 0x31660000 + 7994
3 libdispatch.dylib 0x316614ec 0x31660000 + 5356
4 libsystem_c.dylib 0x31bf058a 0x31bbc000 + 214410
5 libsystem_c.dylib 0x31bf0bbc 0x31bbc000 + 215996
Thread 3 name: WebThread
Thread 3:
0 libsystem_kernel.dylib 0x35afbc00 0x35aec000 + 64512
1 libsystem_kernel.dylib 0x35afb758 0x35aec000 + 63320
2 CoreFoundation 0x316f42b8 0x3167e000 + 484024
3 CoreFoundation 0x316f6562 0x3167e000 + 492898
4 CoreFoundation 0x31686ebc 0x3167e000 + 36540
5 CoreFoundation 0x31686dc4 0x3167e000 + 36292
6 WebCore 0x3248e27e 0x32488000 + 25214
7 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
8 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 4:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbdeb2 0x31bbc000 + 7858
3 EchoExtensionTester 0x004aa090 0x1000 + 4886672
4 EchoExtensionTester 0x002a0b54 0x1000 + 2751316
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 5:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbdeb2 0x31bbc000 + 7858
3 EchoExtensionTester 0x004aa090 0x1000 + 4886672
4 EchoExtensionTester 0x002a0b54 0x1000 + 2751316
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 6:
0 libsystem_kernel.dylib 0x35afbc74 0x35aec000 + 64628
1 libsystem_kernel.dylib 0x35afbf46 0x35aec000 + 65350
2 libsystem_c.dylib 0x31c16812 0x31bbc000 + 370706
3 libsystem_c.dylib 0x31c169fe 0x31bbc000 + 371198
4 EchoExtensionTester 0x004a9f60 0x1000 + 4886368
5 EchoExtensionTester 0x001b8908 0x1000 + 1800456
6 EchoExtensionTester 0x001b893c 0x1000 + 1800508
7 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
8 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
9 EchoExtensionTester 0x004aa748 0x1000 + 4888392
10 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
11 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 7:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbde86 0x31bbc000 + 7814
3 EchoExtensionTester 0x004aa044 0x1000 + 4886596
4 EchoExtensionTester 0x0039367c 0x1000 + 3745404
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 0 crashed with ARM Thread State:
r0: 0x03ebb060 r1: 0x00000000 r2: 0x00000000 r3: 0x00000000
r4: 0x043b19e0 r5: 0x00000002 r6: 0x2fdfc178 r7: 0x2fdfc108
r8: 0x043b19e0 r9: 0x007d47d4 r10: 0x2fdfc1e4 r11: 0x043b19f0
ip: 0x00813aad sp: 0x2fdfc03c lr: 0x005f88f4 pc: 0x00813aac
cpsr: 0x68000030
Binary Images:
0x1000 - 0x8d6fff +EchoExtensionTester armv7 <4c58623df42ff7826b2bf3efab136467> /var/mobile/Applications/90B3B31D-F516-4094-BE3B-88E1324419EC/EchoExtensionTester.app/Ech oExtensionTester
0x2fe00000 - 0x2fe25fff dyld armv7 <4d3190188cbf32a8a73f32a8b5bb7adf> /usr/lib/dyld
0x30986000 - 0x309b9fff QuickLook armv7 <29d2d981d1d6358381f5716ee37314b4> /System/Library/Frameworks/QuickLook.framework/QuickLook
0x30ab8000 - 0x30abefff StoreKit armv7 <0deee3e11c7632aab98ab3c026d41e41> /System/Library/Frameworks/StoreKit.framework/StoreKit
0x30ac5000 - 0x30af3fff DataAccess armv7 <3a2e67aa1d8834b7a8fc2fbb56654b15> /System/Library/PrivateFrameworks/DataAccess.framework/DataAccess
0x30af4000 - 0x30b9afff GameKit armv7 <844f6d90111f3e81961a723f557dd2a1> /System/Library/Frameworks/GameKit.framework/GameKit
0x30bbf000 - 0x30c7efff CFNetwork armv7 <b09e0d53de9f3bc8bde494780f3cdd4f> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x30c81000 - 0x30d05fff AVFoundation armv7 <eeaf5f4f822436a5bd1655f536e69879> /System/Library/Frameworks/AVFoundation.framework/AVFoundation
0x30e07000 - 0x30f07fff libGLProgrammability.dylib armv7 <c0e6b958279639c098136283c6ad06a8> /System/Library/Frameworks/OpenGLES.framework/libGLProgrammability.dylib
0x30f08000 - 0x30f0bfff ActorKit armv7 <f7aa6cdd654231988aafcf448978f450> /System/Library/PrivateFrameworks/ActorKit.framework/ActorKit
0x30f0c000 - 0x30f52fff CoreTelephony armv7 <af7d1e770e5a3ffd8834a57fb5d40557> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony
0x30f56000 - 0x30f5dfff AggregateDictionary armv7 <ab9777b39e8e3026ad64dc90323cad7e> /System/Library/PrivateFrameworks/AggregateDictionary.framework/AggregateDictionary
0x30f85000 - 0x31072fff libiconv.2.dylib armv7 <f4146ce07e3031ea8a81fa5516fd77d0> /usr/lib/libiconv.2.dylib
0x3107a000 - 0x310affff AddressBook armv7 <3f2071a77bc134cd82065eef90d4082f> /System/Library/Frameworks/AddressBook.framework/AddressBook
0x310b0000 - 0x311d1fff CoreGraphics armv7 <65f6c8701b563542820a26b0dfc4f6a4> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x31209000 - 0x31241fff IOKit armv7 <80ae313ad69d3363935c88e51a11862d> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x31242000 - 0x3129bfff EventKit armv7 <0d4e597ee229337183e96e921a72e30a> /System/Library/Frameworks/EventKit.framework/EventKit
0x312af000 - 0x3136bfff MapKit armv7 <806f9ca7eb593d1998587441ce87a396> /System/Library/Frameworks/MapKit.framework/MapKit
0x3136c000 - 0x31466fff GameKitServices armv7 <a69426414c4634cda77409d5890696ac> /System/Library/PrivateFrameworks/GameKitServices.framework/GameKitServices
0x31469000 - 0x314a6fff CoreText armv7 <fb6a72faec2330c4b2cd33c2e9c59588> /System/Library/Frameworks/CoreText.framework/CoreText
0x314a7000 - 0x314abfff libGFXShared.dylib armv7 <a0772a32cd8b3b9194bb0c29807c1c5b> /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib
0x314ac000 - 0x314c7fff FTServices armv7 <e23c3572bf3a36a3a99364d18c484f1e> /System/Library/PrivateFrameworks/FTServices.framework/FTServices
0x314c8000 - 0x31519fff libsqlite3.dylib armv7 <8a41cc6a6d9332308bc415d27577fd24> /usr/lib/libsqlite3.dylib
0x31624000 - 0x31626fff libAccessibility.dylib armv7 <d55f1553d14831a2a5435ae27ef75ef4> /usr/lib/libAccessibility.dylib
0x31627000 - 0x3165ffff libCGFreetype.A.dylib armv7 <416c77100b453e3f838831c4c857f8c7> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib
0x31660000 - 0x3166dfff libdispatch.dylib armv7 <9a0511ad5ebc3db898f1f49ed1a73d34> /usr/lib/system/libdispatch.dylib
0x3167e000 - 0x31763fff CoreFoundation armv7 <a8444f997111304c9571b3ff974b769c> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
0x31797000 - 0x317cefff Security armv7 <6599f42a910b3b31a0e1d98c883d61cb> /System/Library/Frameworks/Security.framework/Security
0x317cf000 - 0x317effff PrintKit armv7 <e5a01ca9083a36afacc08611a398e2ad> /System/Library/PrivateFrameworks/PrintKit.framework/PrintKit
0x31851000 - 0x31858fff libbz2.1.0.dylib armv7 <0a082e1d475432959ba93aa3dbf7fb31> /usr/lib/libbz2.1.0.dylib
0x31ba0000 - 0x31ba8fff MobileBluetooth armv7 <63f11756c4aa3262b2317ff3b8e2a977> /System/Library/PrivateFrameworks/MobileBluetooth.framework/MobileBluetooth
0x31bbc000 - 0x31c3dfff libsystem_c.dylib armv7 <17ee3fe220c23b1f898d21ba25b2bcac> /usr/lib/system/libsystem_c.dylib
0x31c5a000 - 0x31d6cfff MediaPlayer armv7 <da848c0745a637af81d7edd962a09324> /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer
0x31d6d000 - 0x31e0afff AddressBookUI armv7 <e354aeb3d96e30338e90cc3638ffe81b> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI
0x31e0b000 - 0x31e3afff SystemConfiguration armv7 <1d73b8a159363f96bb9c039655c5eae6> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration
0x31e42000 - 0x31e4bfff MobileWiFi armv7 <03d98d5cf6383695aa7d8a88da52f410> /System/Library/PrivateFrameworks/MobileWiFi.framework/MobileWiFi
0x31e4c000 - 0x31e4cfff libCVMSPluginSupport.dylib armv7 <42d8aa2a31843a6e8bfff745644a7ba5> /System/Library/Frameworks/OpenGLES.framework/libCVMSPluginSupport.dylib
0x31e4d000 - 0x31e4dfff Accelerate armv7 <7d5ad465049136afaa1f0d89aac600bc> /System/Library/Frameworks/Accelerate.framework/Accelerate
0x31e6b000 - 0x31e6efff CaptiveNetwork armv7 <fc834fd33a18341ea7506587ad895703> /System/Library/PrivateFrameworks/CaptiveNetwork.framework/CaptiveNetwork
0x31e6f000 - 0x31e81fff TelephonyUI armv7 <e2c34b9a391e3384875ac552dbca0ad4> /System/Library/PrivateFrameworks/TelephonyUI.framework/TelephonyUI
0x31e82000 - 0x31e97fff libresolv.9.dylib armv7 <e92cfbb83f7b330db19181e797bb3f7b> /usr/lib/libresolv.9.dylib
0x31e98000 - 0x31ea3fff libz.1.dylib armv7 <ac706bee36593dc683fd5a96a389d72e> /usr/lib/libz.1.dylib
0x31ec7000 - 0x31ec9fff SpringBoardUI armv7 <90ba5da3e3e337e0a83e2c2589d951a8> /System/Library/PrivateFrameworks/SpringBoardUI.framework/SpringBoardUI
0x31ed3000 - 0x31ef0fff libsystem_info.dylib armv7 <48016be86e3f3cd9aeee1c6590e1ac6f> /usr/lib/system/libsystem_info.dylib
0x31ef2000 - 0x31ef4fff libgcc_s.1.dylib armv7 <a2631ac302f4310dae8367939e16b7c2> /usr/lib/libgcc_s.1.dylib
0x31f0c000 - 0x31f3ffff AppSupport armv7 <0217468bd9f839229a47910b7816b3d5> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport
0x31f40000 - 0x31f43fff IOSurface armv7 <ad50e71624583d06b891344d832f9b08> /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface
0x31f64000 - 0x31f79fff OpenAL armv7 <162722d7da273d649798b27ae0e4458c> /System/Library/Frameworks/OpenAL.framework/OpenAL
0x31fa8000 - 0x31fb7fff MobileDeviceLink armv7 <563a09bcdb2f32369b1e22f53f58273a> /System/Library/PrivateFrameworks/MobileDeviceLink.framework/MobileDeviceLink
0x31fb8000 - 0x31ff4fff libGLImage.dylib armv7 <9d97699e44ee3651ba4ac37e5adec35b> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib
0x31ff5000 - 0x3203ffff libstdc++.6.dylib armv7 <e98c3fd72ba43d02aac24b08f7219eb7> /usr/lib/libstdc++.6.dylib
0x32044000 - 0x3204bfff libMobileGestalt.dylib armv7 <55f29184efcc3046bb833dd72a4487e1> /usr/lib/libMobileGestalt.dylib
0x320af000 - 0x320d3fff MediaControl armv7 <1cfc7d79f554357ab59eb69f9efebf07> /System/Library/PrivateFrameworks/MediaControl.framework/MediaControl
0x320d6000 - 0x320dbfff libcopyfile.dylib armv7 <e32cf2d48a1f3060b372ca7623e4a12b> /usr/lib/system/libcopyfile.dylib
0x320df000 - 0x320e5fff BluetoothManager armv7 <7861bc6128d93f72877df2f234434a47> /System/Library/PrivateFrameworks/BluetoothManager.framework/BluetoothManager
0x320f2000 - 0x320f7fff liblaunch.dylib armv7 <f5ccc8234aea3ebd9a88bd37f0fa23ae> /usr/lib/system/liblaunch.dylib
0x32124000 - 0x32127fff MobileIcons armv7 <08e426f8a707388d8adda670bfed0c2e> /System/Library/PrivateFrameworks/MobileIcons.framework/MobileIcons
0x3216d000 - 0x321a0fff iCalendar armv7 <34ce1957082f3518b5740ac33cfc92eb> /System/Library/PrivateFrameworks/iCalendar.framework/iCalendar
0x321e5000 - 0x321f1fff GraphicsServices armv7 <ff78a9636e933f0dbd222f8d26209788> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
0x321f2000 - 0x32231fff libSystem.B.dylib armv7 <64cf947dd8423eeeb677f81dd3eb2d9d> /usr/lib/libSystem.B.dylib
0x32232000 - 0x3225bfff ContentIndex armv7 <ecd71782cd833360872b943ecc65d203> /System/Library/PrivateFrameworks/ContentIndex.framework/ContentIndex
0x32270000 - 0x322a5fff ImageCapture armv7 <2c474beec10f3791ac8a1d37df04600f> /System/Library/PrivateFrameworks/ImageCapture.framework/ImageCapture
0x322a6000 - 0x322dafff VideoToolbox armv7 <570c63dc3a273a5a8c9072fd5567f5c1> /System/Library/PrivateFrameworks/VideoToolbox.framework/VideoToolbox
0x32301000 - 0x32409fff CoreData armv7 <9843a401dd1d322383e3e40021cc8b95> /System/Library/Frameworks/CoreData.framework/CoreData
0x3240a000 - 0x3240cfff Marco armv7 <53203fa831ab34f894f3a3811bf3917c> /System/Library/PrivateFrameworks/Marco.framework/Marco
0x32440000 - 0x32443fff ArtworkCache armv7 <4863e321afee3ac5a3749e50cd926597> /System/Library/PrivateFrameworks/ArtworkCache.framework/ArtworkCache
0x32444000 - 0x32452fff OpenGLES armv7 <5a76beaeaa013f0cbf16e5cb154598ab> /System/Library/Frameworks/OpenGLES.framework/OpenGLES
0x32468000 - 0x32487fff Bom armv7 <b178e3efb4d733c694bd5a55e57a314f> /System/Library/PrivateFrameworks/Bom.framework/Bom
0x32488000 - 0x32a93fff WebCore armv7 <07941e59d0a33f94802c16c76238fddf> /System/Library/PrivateFrameworks/WebCore.framework/WebCore
0x32a98000 - 0x32a9afff IOMobileFramebuffer armv7 <683f321680763e519d61541170ba2133> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer
0x32a9b000 - 0x32adbfff CoreMedia armv7 <8e0570582ba535bfa74f1f00eef64376> /System/Library/Frameworks/CoreMedia.framework/CoreMedia
0x32ade000 - 0x32ae1fff MediaRemote armv7 <0804293b2774359189f3a67e2c81558d> /System/Library/PrivateFrameworks/MediaRemote.framework/MediaRemote
0x32ae3000 - 0x32ae8fff libnotify.dylib armv7 <9d7198e91de9386a9e5ea43608a66a57> /usr/lib/system/libnotify.dylib
0x32be5000 - 0x32ed2fff libLAPACK.dylib armv7 <b855d60dac01310495453bddfd004f0d> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dyl ib
0x32f68000 - 0x32f69fff libremovefile.dylib armv7 <0fa08e1bb47a3d179072a933d1726597> /usr/lib/system/libremovefile.dylib
0x32f6a000 - 0x32fbffff libvDSP.dylib armv7 <0221caba81a235c5a896a835e2aac047> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib
0x32fc0000 - 0x33084fff libobjc.A.dylib armv7 <a89ef30f6d663254babb6329ce02ca3d> /usr/lib/libobjc.A.dylib
0x33085000 - 0x330b3fff MIME armv7 <60de1fe0bbb134d788c09f7c34b1caa4> /System/Library/PrivateFrameworks/MIME.framework/MIME
0x330bc000 - 0x3311bfff libBLAS.dylib armv7 <0b36b2272aa33a8c9aa22d99c89d7189> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib
0x33120000 - 0x331cffff QuartzCore armv7 <ef9632c9781f3101916b65e9faae1579> /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x331d0000 - 0x331d2fff Camera armv7 <fd4d53b318ab35ce9bb89db3879120f0> /System/Library/PrivateFrameworks/Camera.framework/Camera
0x331fa000 - 0x331fdfff ApplePushService armv7 <015c68c15621348db9f6a012499170e1> /System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService
0x331fe000 - 0x3331dfff Foundation armv7 <09ff368178c5321c9715b9c8d491d53f> /System/Library/Frameworks/Foundation.framework/Foundation
0x3331e000 - 0x33361fff ManagedConfiguration armv7 <f790c26852cb3cf298abe56bc9a3940b> /System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration
0x33391000 - 0x33396fff libsystem_dnssd.dylib armv7 <f019bc513a6a37f4a79555b3ffb2a777> /usr/lib/system/libsystem_dnssd.dylib
0x33439000 - 0x33446fff libbsm.0.dylib armv7 <0a1e2bb78d5138419ecad8ba0fe42fdd> /usr/lib/libbsm.0.dylib
0x3346f000 - 0x34ebdfff TextInput armv7 <f242acc046073c1598195dd26fd8ad6f> /System/Library/PrivateFrameworks/TextInput.framework/TextInput
0x34f49000 - 0x34f4bfff CrashReporterSupport armv7 <9e7efa009730322f84bbc5d8bf1ded94> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport
0x34f4e000 - 0x34f54fff IAP armv7 <c0f4c99a1b493e489948f231ad9238e2> /System/Library/PrivateFrameworks/IAP.framework/IAP
0x34f99000 - 0x34fe7fff GMM armv7 <049361f664eb3f30b0d25cd56ffc1f0f> /System/Library/PrivateFrameworks/GMM.framework/GMM
0x34fe8000 - 0x35031fff IMCore armv7 <9c1e280e1fa33fa784cad479b9cbd941> /System/Library/PrivateFrameworks/IMCore.framework/IMCore
0x35032000 - 0x35077fff IMAVCore armv7 <a4dbb6f1203e3f569080707b3a388573> /System/Library/PrivateFrameworks/IMAVCore.framework/IMAVCore
0x3507a000 - 0x35086fff HomeSharing armv7 <2df6957cdfea31aea12eebf27ca1691c> /System/Library/PrivateFrameworks/HomeSharing.framework/HomeSharing
0x3509e000 - 0x3516ffff IMGSGX543GLDriver armv7 <406a4fa178c036e78cdc9537d5332c2e> /System/Library/Extensions/IMGSGX543GLDriver.bundle/IMGSGX543GLDriver
0x35170000 - 0x3526ffff PhotoLibrary armv7 <03a0336e443b3d958419dab3d432b147> /System/Library/PrivateFrameworks/PhotoLibrary.framework/PhotoLibrary
0x35270000 - 0x35276fff liblockdown.dylib armv7 <14c89b7346433c1f8675f454531f6ca3> /usr/lib/liblockdown.dylib
0x352b1000 - 0x352dbfff libtidy.A.dylib armv7 <68abd33352613e80a099a46d38704085> /usr/lib/libtidy.A.dylib
0x352ff000 - 0x35303fff AssetsLibraryServices armv7 <e1cbfe599c96369ca4bdb0dd99d3cd9f> /System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices
0x35304000 - 0x35346fff CoreAudio armv7 <c972fd5f8e89333ca680b9a33587f896> /System/Library/Frameworks/CoreAudio.framework/CoreAudio
0x35347000 - 0x35351fff ExternalAccessory armv7 <eebb4bdbbefb37419b884ffa011e1dc5> /System/Library/Frameworks/ExternalAccessory.framework/ExternalAccessory
0x35352000 - 0x3535cfff AccountSettings armv7 <d083fb384dc7311eb6766b9b2d2dd9c8> /System/Library/PrivateFrameworks/AccountSettings.framework/AccountSettings
0x3536e000 - 0x3538efff AppleAccount armv7 <4e0ac5cf93b338ab8c5f34ba3c5e2ee4> /System/Library/PrivateFrameworks/AppleAccount.framework/AppleAccount
0x3544b000 - 0x3544bfff libdnsinfo.dylib armv7 <21415179ffa03f949fa8cc851c6c31c7> /usr/lib/system/libdnsinfo.dylib
0x35645000 - 0x356eefff libxml2.2.dylib armv7 <5538d3f2c7d83b88b06168488fe6326b> /usr/lib/libxml2.2.dylib
0x356ef000 - 0x35809fff libicucore.A.dylib armv7 <bada0c2725bb31a483d5adf9aaf1f8df> /usr/lib/libicucore.A.dylib
0x35883000 - 0x3590dfff Message armv7 <2cce1aa95a493906bb0227197f9e4b96> /System/Library/PrivateFrameworks/Message.framework/Message
0x35911000 - 0x35a65fff AudioToolbox armv7 <6619c8c13f8d328e923e797fa8d0df23> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
0x35a6e000 - 0x35a73fff MobileKeyBag armv7 <8c35c090bc373cb181fc26b961b8dba5> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag
0x35a77000 - 0x35ae6fff ProofReader armv7 <6d843c6aecdd37ae84baa40af8ad7e65> /System/Library/PrivateFrameworks/ProofReader.framework/ProofReader
0x35aec000 - 0x35b03fff libsystem_kernel.dylib armv7 <c4ebe7eb2e6c3a2d9bd3620a4d6dbc0e> /usr/lib/system/libsystem_kernel.dylib
0x35b04000 - 0x35c50fff MediaToolbox armv7 <482b13059e8a329fa5d832baede25103> /System/Library/PrivateFrameworks/MediaToolbox.framework/MediaToolbox
0x35c51000 - 0x35c51fff libsystem_sandbox.dylib armv7 <f47c01d627853b328e088b3fdd08e87d> /usr/lib/system/libsystem_sandbox.dylib
0x35cab000 - 0x35cf2fff MessageUI armv7 <35a81f5d4eb03467a1447db80337e570> /System/Library/Frameworks/MessageUI.framework/MessageUI
0x35d49000 - 0x35d72fff MobileCoreServices armv7 <57fef84bdc17301d8bf53ba0fb967fe6> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices
0x35d73000 - 0x35d8bfff iAd armv7 <7f6c5b4499ee383ea75f0cc8dcb5ca35> /System/Library/Frameworks/iAd.framework/iAd
0x35d8c000 - 0x35d9bfff Notes armv7 <d9c976ca976e3d029f69febd48f17601> /System/Library/PrivateFrameworks/Notes.framework/Notes
0x35d9d000 - 0x35db6fff libRIP.A.dylib armv7 <4825c3e392983aba947eca06555e4480> /System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib
0x35db7000 - 0x35ea3fff GLEngine armv7 <f216c91c5fdb38a9ae65dc6651ccbd02> /System/Library/Frameworks/OpenGLES.framework/GLEngine.bundle/GLEngine
0x35ebb000 - 0x35edbfff MobileSync armv7 <4df400c4559435889eccd88db77a110c> /System/Library/PrivateFrameworks/MobileSync.framework/MobileSync
0x35edc000 - 0x35eddfff libsystem_blocks.dylib armv7 <ccc041df3de73eafb7a59e74cdb1702b> /usr/lib/system/libsystem_blocks.dylib
0x35ede000 - 0x3626bfff UIKit armv7 <c271b78464d93cb7bf28c6e49df293ba> /System/Library/Frameworks/UIKit.framework/UIKit
0x3626c000 - 0x3657ffff GeoServices armv7 <88616f3deada3bb495fc15e3ba58dc83> /System/Library/PrivateFrameworks/GeoServices.framework/GeoServices
0x365bb000 - 0x365cbfff WebBookmarks armv7 <6956561235333e74b8ff316cb2edc93e> /System/Library/PrivateFrameworks/WebBookmarks.framework/WebBookmarks
0x365dc000 - 0x36622fff CoreLocation armv7 <249b8af3dc503d11bf3711f0407c66d8> /System/Library/Frameworks/CoreLocation.framework/CoreLocation
0x36629000 - 0x36629fff vecLib armv7 <0c60cd0a60f43d2791d36cb357d30e3c> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib
0x3663f000 - 0x36640fff CoreSurface armv7 <7b83cd757da73e6e826693c29296d3fa> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface
0x36641000 - 0x366d6fff ImageIO armv7 <d520e3241d1130e8ac1375ee0f2c1095> /System/Library/Frameworks/ImageIO.framework/ImageIO
0x366d7000 - 0x3679dfff MusicLibrary armv7 <71a09022bd8b3b6a90a250199d190f10> /System/Library/PrivateFrameworks/MusicLibrary.framework/MusicLibrary
0x3679e000 - 0x36844fff Celestial armv7 <407badafc6403692bf099d542d28bf7f> /System/Library/PrivateFrameworks/Celestial.framework/Celestial
0x36847000 - 0x36849fff MobileInstallation armv7 <94b6d6c5d9883175af26764567528127> /System/Library/PrivateFrameworks/MobileInstallation.framework/MobileInstallation
0x3684e000 - 0x36850fff MailServices armv7 <74ae0145ef713c6d91fd8f68885b0a61> /System/Library/PrivateFrameworks/MailServices.framework/MailServices
0x36851000 - 0x368b7fff EventKitUI armv7 <b3b568df80863f2e9374054bab335bf3> /System/Library/Frameworks/EventKitUI.framework/EventKitUI
0x369e7000 - 0x36a98fff WebKit armv7 <eb9a0d69c64b3127b2bffd71641add3b> /System/Library/PrivateFrameworks/WebKit.framework/WebKit
0x36b4e000 - 0x36c7afff libmecabra.dylib armv7 <113de5f9858c32b8b158bfdc68042a97> /usr/lib/libmecabra.dylib
0x36c7c000 - 0x36c92fff EAP8021X armv7 <9fefc0ada30435fbb3b51818c74f6cb8> /System/Library/PrivateFrameworks/EAP8021X.framework/EAP8021X
0x36c93000 - 0x36c99fff ProtocolBuffer armv7 <f9277ee9b85b3722975ad319a323aca0> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer
0x36cda000 - 0x36cdefff libcache.dylib armv7 <362fdd2de66f3e189b5d139c9669a9e3> /usr/lib/system/libcache.dylib
0x36cdf000 - 0x36cf1fff PersistentConnection armv7 <659ea9d5b13d3fefb37acff09016a69c> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection
0x36d08000 - 0x36d11fff ITSync armv7 <ba8b48d061903e4096774344448776d0> /System/Library/PrivateFrameworks/ITSync.framework/ITSync
0x36d13000 - 0x36e17fff JavaScriptCore armv7 <61a94142e2d23dafa2964190dd46e9e3> /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore
0x36e1b000 - 0x36e24fff CoreVideo armv7 <ea847e6dba2d36b1826b255c73b39539> /System/Library/Frameworks/CoreVideo.framework/CoreVideo
0x36e25000 - 0x36e28fff libmacho.dylib armv7 <53908d448e9e32418652a4afee5bc578> /usr/lib/system/libmacho.dylib
0x36e29000 - 0x36e77fff CoreMotion armv7 <5e6b884d36d93789b40b7f3876130417> /System/Library/Frameworks/CoreMotion.framework/CoreMotion
0x36e7d000 - 0x36e7efff DataMigration armv7 <42e9e87a4e0735c3837e27d4f2adcf55> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration
0x36e7f000 - 0x36e85fff AssetsLibrary armv7 <124dd93095423fcf8029d3c7614dffd4> /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary
0x36ee6000 - 0x36ef9fff libmis.dylib armv7 <529ea6e3a87230ce9f6cf3285c22429c> /usr/lib/libmis.dylib
0x36f16000 - 0x36f17fff libsystem_network.dylib armv7 <3e0b7d6754cd33669c0680525f03ede1> /usr/lib/system/libsystem_network.dylib
0x36f18000 - 0x36f4bfff StoreServices armv7 <d526715648f435c3aac4c42953e76d20> /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices
0x36fa9000 - 0x3706afff RawCamera armv7 <0c52d8b1498c3dbb9aad95f3bcd8261d> /System/Library/CoreServices/RawCamera.bundle/RawCamera
0x370b2000 - 0x370ddfff IMFoundation armv7 <f1f21bedbf2e3ea38f692abef0005d76> /System/Library/PrivateFrameworks/IMCore.framework/Frameworks/IMFoundation.framework/IMFo undation
0x370e4000 - 0x370e5fff libdyld.dylib armv7 <7dd4acfe150831e0ae82296587e67e7f> /usr/lib/system/libdyld.dylib
0x370ec000 - 0x370fcfff DataAccessExpress armv7 <66d9047da79a31daa887e6d84c42ecb2> /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress
0x37144000 - 0x37147fff CertUI armv7 <9060fe03a4943ef295531feced9a17dd> /System/Library/PrivateFrameworks/CertUI.framework/CertUI
0x37148000 - 0x37154fff SpringBoardServices armv7 <c68262667ac8397a949ce4e92dfec7db> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices -
How to use single ant build to package with and without native extensions
Hi,
I am using iOS native extensions for Adobe air. For this I am listing the extensionid in the application descriptor file. Since the package with native extensions are meant to run only on device, I want my build script to work without native extensions too to be able to run on simulator. Is this manadatory that I need two separate application descriptors/basically two build scripts to compile and package them? Please suggest and let me know if more explanation is needed.
Thanks,
Swathi.why are you wanting to use single frames?
They allow having the initial frame address stay in the
address bar, and not
show the linked page's address. The problems they cause
usually override any
value.
Or- if we aren't using the same words the same way, please
give an example
site of what you want to do.
Alan
Adobe Community Expert, dreamweaver
http://www.adobe.com/communities/experts/ -
I get this error:
ld: warning: -ios_version_min not specificed, assuming 4.0
ld: warning: -dead_strip with lazy loaded static (library) archives has resulted in a duplicate symbol. You can change your source code to rename symbols to avoid the collision. This will be an error in a future linker.
/var/folders/y4/svqv7kzn469_ljcrvw1b99500000gn/T/cmd8085539752601990184.tmp: line 2: 25159 Bus error: 10 "/Applications/Adobe Flash Builder 4.6/sdks/4.6.0/lib/aot/bin/ld64/i686-apple-darwin10-ld64" -ObjC -dead_strip -Z -arch armv7 -syslibroot "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iP honeOS6.0.sdk" -L/usr/lib -F"/System/Library/Frameworks/" -L"/Applications/Adobe Flash Builder 4.6/sdks/4.6.0/lib/aot/lib" -o "../aot8213014594451590298.tmp" -L"/var/folders/y4/svqv7kzn469_ljcrvw1b99500000gn/T/07f32573-0d2b-42c6-b431-916954d76791" -exported_symbol _main -exported_symbol _ExtInitializer -exported_symbol _ExtFinalizer "extensionglue.o" -lstdc++ -lRuntimeInterpreter.arm-air -lgcc_s.1 -lstdc++.6 -lcrt1.o -lSystem.B -lz -lobjc -framework CoreFoundation -framework UIKit -framework MobileCoreServices -framework CoreGraphics -framework Foundation -framework SystemConfiguration -framework AudioToolbox -framework CFNetwork -framework QuartzCore -framework OpenGLES -framework CoreLocation -framework CoreMedia -framework CoreVideo -framework AVFoundation -framework Security -lcom.pgi.native.extensions.softphone
Compilation failed while executing : ld64
The ane was created using this command:
"/Applications/Adobe Flash Builder 4.6/sdks/4.6.0/bin/adt" -package -target ane SPExtension.ane extension.xml -swc SPTest.swc -platform iPhone-ARM -C ios . -platformoptions platform.xml
The ANE file seemed to load in my project ok, and build ok. But when I hit run to package for my ios device, I get the above error.Here's the fix in case anyone else runs into this problem. When Flash Builder is building the deployment during launch, it converts the mapped path to a mangled local path for the ane to find the descriptor to a relative path, which can't be found and throws the null pointer. Making the Output Folder path actually local to the computer, as opposed to the default that FB creates, resolves the error, and still allows blazeds access from the device.
-
Very slow Export to Media Encoder and Media Encoder connecting to dynamic link server
My flow is this: Open After Effects CC, import an image sequence, go to File > Export > Add to Adobe Media Encoder Queue...
Every other time i do this it will take 2-3 mins before Media Encoder even shows the splash screen, then it'll take another 1-2 mins to open.
Next, I'll select my custom preset over on the right side of the window, then hit the Play button to begin encoding. Sometimes nothing will happen at all, sometimes I'll see the Orange stripped bar on the lower left and the message Media Encoder connecting to dynamic link server and that'll last 5+ minutes and I end task to get out of AE and ME. Sometimes, ME will begin encoding right away and zip through the small animation sequence quickly without issue.
I have WIndows 7 Pro, I'm on a work network with access to the internet and AE has been updated 24 days ago. I have a subscription and I'm signed on. However, sometimes I do not have the Creative-Cloud icon in my systray.
Thanks,Thanks. I have 16GB Ram, 64bit Win7, Intel(R) Core(TM) i7-3970X @ 3.50GHz 3.50GHz. AE is set to have maximum disk cache of 46GB. RAM reserved for other applications: 5GB RAM available for AE, PR, Pl, (some triangular icon [edit] which is ME ), Ps: 10GB. nothing else checked on that screen.
Typically just a mail client, 1 or 2 sessions of Firefox, 1 or 2 network folders open when i launch AE.
The last couple of times specifically, i had a 450 frame animation sequence at native 720p. then i added a curves layer on top of it in AE, then added two ~600x300px logos, one in each lower corner, then added a new solid layer which i used as a vignette. Finally over that i added a 720p still image which i held for another 15 seconds beyond the animation.
For the above, i ended-task, rebooted, brought it up again and it lauched ME quickly, then i got the stripped bar and connecting message until i ended task on that, then the 3rd time was the charm - everything opened quickly and it began to encode quickly.
The next three uses late afternoon yesterday were 150 frame animations at 480x270 and they all seemed to work fine. I created the sequence in 3ds max, then closed and went into AE. Then I'd close AE render another sequence, back into AE etc... -
Pass C++ Class Member Function as a callable function in AIR Native Extension
I'm writing an ANE and I'd like to know if anyone has been able to pass a C++ class member function pointer as a callable function from AIR? I have tried this so far with a little bit of C++11 trickery and it's crashing. I've also statically linked the libstdc++ into my library, according to the documentation, in order to ensure that these features I use work correctly. I have code like so:
FakeWorld* world = new FakeWorld();
*numFunctions = 1;
memberFunctions = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * (*numFunctions));
ANEMemberFunction mCreateFakeBody = std::tr1::bind(&FakeWorld::createFakeBody, world, std::tr1::placeholders::_1, std::tr1::placeholders::_2, std::tr1::placeholders::_3, std::tr1::placeholders::_4);
ANEFunction* createFakeBody = mCreateFakeBody.target<ANEFunction>();
memberFunctions[0].name = (const uint8_t*) "createFakeBody";
memberFunctions[0].functionData = NULL;
memberFunctions[0].function = createFakeBody;
FRESetContextNativeData(ctx, (void*)world);
I just realized I'm using C here for allocating the member functions array.. silly me, but I don't think this is the cause of my issue. I refuse to believe that Adobe has built to the Native Extensions portion of the runtime in such a way that I have to cram every single function I want to create (natively) into a global, C formatted namespace (Especially since the documentation says that C is only required for the extenion and context initializing function interfacing and the rest of the code can be done in C++ or objective-C). So please let me know if and how this is possible and I thank you so much in advance for your time!P.
P.S. Currently when I run this code, I can do the object initialization just fine. As soon as I invoke the "createFakeBody" method on the native side, the runtime dies and simply says:
Problem signature:
Problem Event Name: BEX
Application Name: adl.exe
Application Version: 3.1.0.4880
Application Timestamp: 4eb7612e
Fault Module Name: StackHash_0a9e
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: 00000000
Exception Code: c0000005
Exception Data: 00000008
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
Thanks again for your assitance.It's been a little while since i've dealt with C++ and not up to speed on tr1 or C++0x, so forgive me if i'm not helping.
The the examples of std::tr1::bind that i'm seeing out there seem to be either dereferencing the bound 'this' pointer when creating the bound method, i.e. in your case *world instead of world, or using std::tr1::ref(*world), therefore i believe that bind expects the bound parameters to be passed by reference.
Given that the result of std::tr1::bind is callable (basing that on http://stackoverflow.com/questions/3678884/virtual-member-functions-and-stdtr1function-how -does-this-work) could you simplify to the following:
memberFunctions[0].name = (const uint8_t*) "createFakeBody";
memberFunctions[0].functionData = NULL;
memberFunctions[0].function = std::tr1::bind(&FakeWorld::createFakeBody, *world, std::tr1::placeholders::_1, std::tr1::placeholders::_2, std::tr1::placeholders::_3, std::tr1::placeholders::_4);
Or for an even simpler starting point, creating a test member function 'helloWorld' in FakeWorld that takes no arguments and using:
memberFunctions[0].name = (const uint8_t*) "helloWorld";
memberFunctions[0].functionData = NULL;
memberFunctions[0].function = std::tr1::bind(&FakeWorld::helloWorld, *world);
Hope this helps. -
We are planning to choose a new platform of our new convergent media device. Like to know whether we can develop our platform using Adobe AIR Native Extension for Linux OS?
I came to know that Adobe has subscription based suuport for developers. If that is the case we can purchase support for development assistance on Linux based AIR Native Extensions. What we need are the FRE libraries and C code to run the Native extensions on Linux. I had acces to AIR 3.0 for Linux sometime back. Unfortunately our project look some time to mature.
Please let us know about this so that we can base our plans on AIR/Linux native extensions.Four part Series, this is link to first part
http://quetwo.com/2011/10/31/creating-an-windows-air-native-extension-with-eclipse-part-1/
Another one
http://www.flexjunk.com/2011/11/30/developing-an-air-native-extension-for-osx-and-windows- in-c/
Hope those help. -
Dynamic link problem, PPro cs5 - AE cs5, multi-cam sequence
This is odd. I'm working on a two camera interview in Production Premium CS5. Did the standard stuff - a source sequence with both cameras, did some rough editing here (syncing the two cameras, trimming the clips, etc.). Then nested the source sequence into a multi-cam edit sequence. Used the multi-cam monitor to switch back and forth between cameras, etc. All is good.
But my editor wants to make three separate videos from this interview. So the logical thing (so I thought anyway) would be to nest this muiti-cam edit squence into three separate target sequences. Then I could get the camera switching done just once, and slice-'n-dice the three target sequences to make the short-'n-sweet individual videos that make my editor happy. Did this for the first target (a single question and answer). The result looks fine in PPro, and editor approves. All that's left is adding the lower thirds.
Everything fine until I go to export to AE via dynamic link so I can add lower thirds and finish up. What PPro sends to AE isn't just my target sequence, but it also sends the multi-cam edit sequence and the source sequence as well. But.... it ignores it all and will only show me the Acam footage. Bcam doesn't show up at all. Clearly this isn't working. But now I find that I can't even break the links. So I can't even start over. Sigh...
Two questions: First, how does one export a multi-cam edit sequence via dynamic link from PPro to AE, and have it show up in AE looking like it does in PPro? In other words, what did I do wrong?
Second, how can I recover from this? Do I really have to delete my target sequence in PPro and start over (and by extension, delete the AE project also)? Is there no way to sever a dynamic link once it's made?
Bruce WatsonUm.... didn't work. Seems that AE and PPro have different ideas of what "transparency" mean. The lower thirds composition in AE has a transparent (black) background which works fine in AE (I've used this lower thirds quite a bit in AE so I know it works pretty well), but when I import it into PPro it shows as white, and is completely opaque. Lettering doesn't show up either (but the letters are white so that's not such a surprise given the background), but the motion is still there. None-the-less, either way I tried it (copy and paste, or export from AE as a PPro project, then import it in PPro and drag the AE built sequence to the timeline) didn't work.
Trying to export just the lower third comp from AE through dynamic link as a PPro project didn't work either. Failed weirdly. It popped up the right sequence creation box in PPro, so I could pick AVCHD 1080p30 as the sequence type (matching the other sequences in the project), and created the new sequence with the correct name. But the sequence was empty. It wouldn't let me drag the lower third sequence anywhere either, so I couldn't put it on a timeline.
Sigh... this isn't supposed to be this difficult. But hey, if it was easy anyone could do it, yes? -
Adobe: What frameworks are compatible with Native Extensions on iOS?
Man it's really hard to diagnose what could possibly be going wrong compiling ANEs for iOS. I dev apps in Xcode that work perfect, zero leaks. I use any part of the majority of the frameworks I've tried (none visual) and they simply don't work outside a very rare few. Vibration, gyroscope, alert modals, etc.
Is there a list of compatibility between ANEs and classes on platforms that AIR supports? Whether it be Windows, iOS, Android, MacOSX, etc?
Is there some way to "know" that a framework should be supported? For example, all I remember reading is to steer clear of visual classes. Oddly the UIAlertView modal works on iOS (that's visual to me but *shrug*).
My current need is to use NSURLConnection and NSURLRequest. Both are in Foundation.h. Neither are visual. They're simply classes that make a connection to a host while sending and receiving responses. Yet any time I attempt to instantiate a NSURLRequest it's insta-crash. I comment it out and the ANE works fine. So far I find almost everything I do with ANEs to fail.
Clearly the framework classes I'm using aren't supported or I'm doing it miserably wrong.
A chart indicating support would be REALLY nice for each platform.
On another note, has anyone utilized NSURL* on iOS successfully in an ANE?Thanks for the response. A few questions on your insights.. I don't use the command line adt tool to do anything besides package the ANE. Otherwise I'm not sure why my AIR project would need to know where the iOS SDK base directory is. The static library is already produced.
Here's the simple code I'm using (just the NSURL* related stuff):
http://pastebin.com/SFsq578R
I'm producing the Static Lib using XCode 4.3.x. I only need NSURL* functionality which is found in Foundation.h which is included and required for compile in build phases. If I comment out anything to do with NSURL* and simply return a string (FREObject of a const char*) I get that string back to flash and can print it to prove I have the context/initializer/finalizers set up and the function named properly. So the bridge between AIR and ANE work just fine. It's only when I use a NSURL* function that I crash.
Since my troubles I read this extensively long PDF on creating native extensions:
http://help.adobe.com/en_US/air/extensions/air_extensions.pdf
To be brief, it warned that a FREObject only exists until the return of the function you call. What I'm wondering is if it's even possible to use NSURL* functions because they require a delegate and will be running async. So even if I make a request and a connection using that request, after I return from the FRE function the connection is probably being cleaned up.
That aside, I did make the connection and request a synthesized global hoping to get around this. Also to be brief I found an excellent post about debugging an IPA using XCode. Otherwise you're pretty much in a black hole debugging. Here's the post:
http://blogs.adobe.com/rajorshi/2011/11/18/debugging-native-extensions-for-air-ios/
The recipe works although it didn't right out of the box.
XCode is telling me it's a EXC_BAD_ACCESS which typically means the object does not exist that I'm doing something to. My call stack looks like this (loosely, and the name of my static lib is libWebUtil):
0 objc_msgSend
1 CFStringGetLength
2 _CFStringIsLegalURLString
3 -[NSURL(NSURL) initWithString:relativeToURL:]
4 -[NSURL(NSURL) URLWithString:relativeToURL:]
5 -[WebUtil performRequest] // this is my method
6 performRequest
7 avmplus::ExtensionContextObject::_call(avmplus::String*,avmplus::ArrayObject*)
.. etc
From that stack I see it firing off the NSURLRequest and NSURL itself is first taking my string and testing it (CFStringIsLegalURLString) and then it runs CFStringGetLength. I assume it has completed verifying the string and goes to send a message (0 objc_msgSend) and I get a EXC_BAD_ACCESS on that.
I see 9 threads running. This happens on Thread 1 (com.apple.main-thread). The stack traces all look like ASM code to me. Not very useful but at least I can tell the official error.
Mind you that code linked above works perfectly if I make a new empty app, import it and run it. I print out the response data and it's fine.
Right around the incident on the stack there's a avmplus::EventDispatcherObject::NativeDispatchEvent(MMgc::GCAPI::GCRef<avmplus::EventObje ct>, avmplus::WeakRefList<SObject> const*) + 1076; .. if that helps at all. It's like the event it dispatches (perhaps from NSURL) to signal that the NSURL I'm making on the fly is correct but there's no object to receive it. That might happen if my method finishes and the object is destroyed before NSURL can even fire off the message.
So I'm very interested in learning about object lifecycle in an ANE. -
Is it possible to access an AIR Native Extension inside an Actionscript worker?
Hi, I'm currently trying to push off some time consuming tasks to an actionscript worker. This worker will in turn needs to call out to an AIR Native Extension as part of it's processing.
I've tried various combination in Flash Builder 4.7 i.e. embedded worker and external worker (with explicit packaging of the ANE in the external worker project) but alas I've been unable to get this to setup to work. I keep getting an error from the worker saying that the native extesion class could not be found (Error #1014).
Does anyone know if it is at all possible to do this or it's a limitation of Actionscript workers (loading thw swf bytes does not load up the ANE)?Hi
I also met the same problem---"native extesion class could not be found"
The problem is solved?
I think the reason is
" <extensions>
<extensionID>XXXXXX</extensionID>
</extensions>“ in "-app.xml"
the worker do not konw the extensionID
In this article :
Adobe AIR * Using native extensions for Adobe AIR
Including the ANE file in your application’s library path
To compile an application that uses a native extension, include the ANE file in your library path.
Using the ANE file with Flash Builder
If your application uses a native extension, include the ANE file for the native extension in your library path. Then you can use Flash Builder to compile your ActionScript code.
Do the following steps, which use Flash Builder 4.5.1:
Change the filename extension of the ANE file from .ane to .swc. This step is necessary so that Flash Builder can find the file.
Select Project > Properties on your Flash Builder project.
Select the Flex Build Path in the Properties dialog box.
In the Library Path tab, select Add SWC....
Browse to the SWC file and select Open.
Select OK in the Add SWC... dialog box.
The ANE file now appears in the Library Path tab in the Properties dialog box.
Expand the SWC file entry. Double-click Link Type to open the Library Path Item Options dialog box.
In the Library Path Item Options dialog box, change the Link Type to External.
Now you can compile your application using, for example, Project > Build Project.
the error will be done
Unfortunately, it still does not work well!
Error: Error #3731: This feature is not available within this context.
at flash.external::ExtensionContext$/_createExtensionContext()
at flash.external::ExtensionContext$/createExtensionContext()
3731
This feature is not available within this context.
This error occurs if a background worker attempts to access an API that is not available to it.
Run-Time Errors - Adobe ActionScript® 3 (AS3) API Reference -
AIR 3 RC Native Extensions On Mac OS X Error
I'm getting an error when trying to compile a native extension (.framework) for Mac OS X 10.7 with XCode 4.1; I've included "FlashRuntimeExtension.h" in the project but not sure if i'm missing something else as there is a lack of documentation for Native Extensions with XCode for a Mac Framework (the error I get is "_FRENewObjectFromBool" - symbol(s) not found for architecture i386.
I have AIR 3 RC and the latest Flash installed on my machine.
I'm not sure what i'm missing?
Thanks!Hi lemonility,
Could you try the following steps out and let me know if they help?
1) Select the project in the project navigation window which will show project summary on right
2) Select 4th tab build phases
3) Select Link binary with library option
4) Add framework for which you are getting
5) Move the framework from main folder to the frameworks folder
6) Build it again and errors should be gone.
Thanks,
Chris
Maybe you are looking for
-
Weird Internet Explorer problem!
Something really stranged has happened to my computer within the past couple of hours. I use IE 5 (yeah, I know...I am hopelessly out of date, but it has all my bookmarks and preferences and I like the way it functions much better than any other brow
-
How to debug FM configured in ABAP-PI port ?
Hi All, Is there any way we can debug the FM configured in port of type ABAP-PI for an outbound IDOC? I tried update and system debugging also. But control is not stopping. Is the FM called in BACKGROUND mode or as RFC? You inputs are highly appricia
-
No audio on Portege m500 ppm50h-0d1020
dear all i'm trying to install sound card driver for m500 portege ppm50h-0d1020 using pm500_xp_sound.zip, the software installed perfectly but not sound came from the laptop, no sound slider over control panel can be moved at all, do i miss installat
-
Transaction F-59 - restriction if amount of payment is higher then total...
Hello, I need little help with transaction F-59. To explain exactly with what I need help with, I will try to explain it through little example: For vendor A I have due in amount of total 40.000 USD and I plan to pay this amount in three partial paym
-
See http://htmldb.oracle.com/pls/otn/f?p=24317:130 I would like to have each region's link in the list re-display the same page with just that region. I would pass in a hidden parameter in the link's URL and conditionally display each region dependin