Cannot initialize Native Extension
Hello
i always get an
Type Error #1009 cannot access a property or method of a null object reference
It seems that my code cannot load the ANE because I cannot instatiate the extension object.
any help?
Thanks
Marco
Marco,
In the past I've had some issues with the ANE being missing. First of all, if you haven't already:
1) Go to project settings and check that the ANE is included in your build packaging (if you don't have build packaging in your project's options, you're making a web flash target, which does not support native extensions)
2) Go to project settings and check that the ANE is included in your build path.
2) Check that the platform you are targetting has it's initializer set in the extension.xml file that is used to package the ANE. If you didn't package the ANE yourself I believe you can rename the .ane to a .zip and have a look at the configuration yourself using a zip file viewer. If the platform is not supported, you will need to do this first.
If everything seems right you might need to build your project from scratch. From memory, I've had things mysteriously work again after a rebuild, or after removing ANEs and reinserting them.
That's all I can think of, of the top of my head. Hope it helps
Cheers,
Jarrod
Similar Messages
-
Using OpenGL ES in an AIR native extension on iPad
Hi,
I am trying to find out whether I can render images using iPad GPU from a native extension loaded by an AIR application on iPad. The main reason for this is that I need every bit of GPU power in my AIR application and I cannot use Stage3D (see http://forums.adobe.com/thread/1267084 for details).
The idea is to pass a bitmap from the ActionScript code to the native extension, render it by Objective C code and raw OpenGL ES and send it back to the AIR code.
Is it technically possible? I am afraid that AIR runtime uses OpenGL ES for its own needs (at least for Stage3D support) so native extension possibly cannot share OpenGL with it.
Nevertheless I have made a try. Here is some code:
The first strange thing is that the following initialization code:
myContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:myContext];
does not make much sense for me. Instead of this I can see that EAGLContext already contains some instance previously set up by someone else (maybe AIR runtime did it). And I was able to get an image only when I do not create this context at all. So these two lines are actually commented out in my test app.
Here is how I initialize framebuffer:
glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
glGenRenderbuffersOES(1, &colorRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGBA8_OES, width, height);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorRenderbuffer);
I do not need 3D so I am not creating depth buffer. Insteat I need to render a lot of 2D polygons and the drawing order is OK for me.
Then I tried the following code to render a single triangle specified in the vertexData array:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// vertexData contains 2d float coordinates followed by 4 bytes of color for each vertex
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 12, vertexData);
// The following two lines cause the whole screen to be filled with random gradient semi-transparent fill.
// If I comment them out then it renders a black triangle that I really expect to get.
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 12, (vertexData + 8));
// Draw the triangle:
glDrawArrays(GL_TRIANGLES, 0, 3);
// Get the final image:
glPixelStorei(GL_PACK_ALIGNMENT, 4);
NSInteger datalength = width * height * 4;
GLubyte* rawdata = (GLubyte*)malloc(datalength * sizeof(GLubyte));
glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, rawdata);
// In this point the rawdata array contains an image that I am able to convert and send back to my AS code.
So each time I try to specify color for vertexes then I get the whole iPad screen filled with some random gradient. I have also tried glColor function and it causes such effect too. Disabling lighting and fog did not helped.
So my main question is the following: is it technically possible to render an offscreen image in the native extension using OpenGL?
Maybe the black triangle that I was able to get from the rendered image is rendered accidentally and the whole thing should not work at all?Hi there,
I'm a total OpenGL newb but, after quite some struggle I managed to bend OpenGL from AIR extension to do what I wanted in my FlashyWrappers library for iOS (for superfast video capturing from AIR apps).
Basically you're right in the assumption that the OpenGL context is already initialized by AIR. I'm not sure about your code, because like I said I'm practically a newb in that field, but overall, because you share context with AIR's OpenGL, it's entirely possible you're messing with it's own rendering pipeline if you don't properly unbind / reset stuff and that might cause the screen go crazy.
Myself I was able to do a little different thing: Create a texture-backed FBO, bind it on every frame and let AIR render into it (instead of screen). I was then able to manipulate the contents of what AIR rendered (you can do glReadPixels on the content too, by the way).
So I bet if I can let AIR render its stuff into my texture backed FBO you can render your own things into it as well...I just bound it and waited for AIR to finish its rendering into it. Instead you can probably render into it, then bind AIR's original FBO instead of waiting for AIR to render so that AIR renders to screen again on the next frame.
I partially used this tutorial OpenGL ES 2.0 for iPhone Tutorial Part 2: Textures - Ray Wenderlich .
Oh and I would like to add that playing with this works only in GPU or Direct mode, not CPU. -
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 -
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. -
AIP-50077: Cannot Initialize Transport
Hi,
I configured custom document over Generic Exchange using JMS tranport. I configured JMS queue in SOA. I am getting the following errors in b2b.log
2008.11.24 at 16:00:56:103: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:initialize add JMS transport Endpoint: jms://opnm:ormi://10.232.65.81:6005:home {Destination Provider Properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, PROTOCOL_ENDPOINT=ProtocolEndpoint_15D9, Connection Factory Location=jms/QueueConnectionFactory, jms.receiver.jndi_connection_factory_location=jms/QueueConnectionFactory, Message Type=bytes, jms.receiver.factory_provider_properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, transport_callout_waittime=30, jms.receiver.jndi_destination_provider_properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, jms.receiver.polling_interval=300, polling_interval=300, Factory Provider Properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, jms.receiver.jndi_destination_location=opnm:ormi://10.232.65.81:6005:home}
2008.11.24 at 16:00:56:119: B2BStarter thread: B2B - (INFORMATION) oracle.tip.adapter.b2b.transport.TransportInterface:initialize: Props: jms://opnm:ormi://10.232.65.81:6005:home Destination Provider Properties = java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
PROTOCOL_ENDPOINT = null
Connection Factory Location = jms/QueueConnectionFactory
jms.receiver.jndi_connection_factory_location = jms/QueueConnectionFactory
Message Type = bytes
jms.receiver.factory_provider_properties = java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
transport_callout_waittime = 30
jms.receiver.jndi_destination_provider_properties = java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
polling_interval = 300
jms.receiver.polling_interval = 300
Factory Provider Properties = java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
jms.receiver.jndi_destination_location = opnm:ormi://10.232.65.81:6005:home
2008.11.24 at 16:00:56:119: B2BStarter thread: B2B - (INFORMATION) oracle.tip.adapter.b2b.transport.TransportInterface:initialize: Props: ftp://10.232.65.106/FTP/Acme PROTOCOL_ENDPOINT = null
file.receiver.password = *****
file.receiver.wallet_location = D:\OraHome_2\ip\ewallet.p12
file.receiver.wallet_password = *****
file.receiver.user = sss
transport_callout_waittime = 30
file.receiver.polling_interval = 60
polling_interval = 60
file.receiver.channel_mask = None
file.receiver.minimum_age = 0
filename_format = %FROM_PARTY%_%TIMESTAMP%.dat
file.sender.channel_mask = None
2008.11.24 at 16:00:56:119: B2BStarter thread: B2B - (INFORMATION) oracle.tip.adapter.b2b.transport.TransportInterface:initialize: Props: http://localhost transport_callout_waittime = 30
port = 7778
PROTOCOL_ENDPOINT = null
2008.11.24 at 16:00:57:869: B2BStarter thread: B2B - (ERROR) oracle.tip.transport.TransportException: Error: "jms.receiver.is_topic" header is not set.
at oracle.tip.transport.basic.TransportProperties.analyze(TransportProperties.java:217)
at oracle.tip.transport.basic.JMSReceiverProperties.<init>(JMSReceiverProperties.java:155)
at oracle.tip.transport.basic.JMSReceiver.<init>(JMSReceiver.java:113)
at oracle.tip.transport.basic.TransportReceiverFactory.createTransportReceiver(TransportReceiverFactory.java:97)
at oracle.tip.transport.b2b.B2BTransport.<init>(B2BTransport.java:147)
at oracle.tip.adapter.b2b.transport.TransportInterface.initialize(TransportInterface.java:458)
at oracle.tip.adapter.b2b.engine.Engine.initialize(Engine.java:510)
at oracle.tip.adapter.b2b.init.B2BServer.initialize(B2BServer.java:280)
at oracle.tip.adapter.b2b.init.B2BStarter.startB2B(B2BStarter.java:297)
at oracle.tip.adapter.b2b.init.B2BStarter.run(B2BStarter.java:143)
at java.lang.Thread.run(Thread.java:534)
2008.11.24 at 16:00:57:869: B2BStarter thread: B2B - (ERROR) Error -: AIP-50077: Cannot Initialize Transport: oracle.tip.transport.TransportException: Error: "jms.receiver.is_topic" header is not set.
at oracle.tip.adapter.b2b.transport.TransportInterface.initialize(TransportInterface.java:475)
at oracle.tip.adapter.b2b.engine.Engine.initialize(Engine.java:510)
at oracle.tip.adapter.b2b.init.B2BServer.initialize(B2BServer.java:280)
at oracle.tip.adapter.b2b.init.B2BStarter.startB2B(B2BStarter.java:297)
at oracle.tip.adapter.b2b.init.B2BStarter.run(B2BStarter.java:143)
at java.lang.Thread.run(Thread.java:534)
Caused by: oracle.tip.transport.TransportException: Error: "jms.receiver.is_topic" header is not set.
at oracle.tip.transport.basic.TransportProperties.analyze(TransportProperties.java:217)
at oracle.tip.transport.basic.JMSReceiverProperties.<init>(JMSReceiverProperties.java:155)
at oracle.tip.transport.basic.JMSReceiver.<init>(JMSReceiver.java:113)
at oracle.tip.transport.basic.TransportReceiverFactory.createTransportReceiver(TransportReceiverFactory.java:97)
at oracle.tip.transport.b2b.B2BTransport.<init>(B2BTransport.java:147)
at oracle.tip.adapter.b2b.transport.TransportInterface.initialize(TransportInterface.java:458)
... 5 more
2008.11.24 at 16:00:57:869: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize ERROR in Engine Initialization
2008.11.24 at 16:00:57:884: B2BStarter thread: B2B - (ERROR) oracle.tip.adapter.b2b.engine.Engine:initialize oracle.tip.transport.TransportException: Error: "jms.receiver.is_topic" header is not set.
at oracle.tip.transport.basic.TransportProperties.analyze(TransportProperties.java:217)
at oracle.tip.transport.basic.JMSReceiverProperties.<init>(JMSReceiverProperties.java:155)
at oracle.tip.transport.basic.JMSReceiver.<init>(JMSReceiver.java:113)
at oracle.tip.transport.basic.TransportReceiverFactory.createTransportReceiver(TransportReceiverFactory.java:97)
at oracle.tip.transport.b2b.B2BTransport.<init>(B2BTransport.java:147)
at oracle.tip.adapter.b2b.transport.TransportInterface.initialize(TransportInterface.java:458)
at oracle.tip.adapter.b2b.engine.Engine.initialize(Engine.java:510)
at oracle.tip.adapter.b2b.init.B2BServer.initialize(B2BServer.java:280)
at oracle.tip.adapter.b2b.init.B2BStarter.startB2B(B2BStarter.java:297)
at oracle.tip.adapter.b2b.init.B2BStarter.run(B2BStarter.java:143)
at java.lang.Thread.run(Thread.java:534)
2008.11.24 at 16:00:58:369: B2BStarter thread: B2B - (DEBUG) Engine:notifyAppInitError Enter
2008.11.24 at 16:00:58:369: B2BStarter thread: B2B - (DEBUG) DBContext beginTransaction: Enter
2008.11.24 at 16:00:58:384: B2BStarter thread: B2B - (DEBUG) DBContext beginTransaction: Transaction.begin()
2008.11.24 at 16:00:58:384: B2BStarter thread: B2B - (DEBUG) DBContext beginTransaction: Leave
2008.11.24 at 16:00:58:400: B2BStarter thread: B2B - (DEBUG) Engine:notifyAppInitError Enqueue the ip exception message:
<Exception xmlns="http://integration.oracle.com/B2B/Exception" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<correlationId></correlationId>
<b2bMessageId></b2bMessageId>
<errorCode>AIP-50077</errorCode>
<errorText>Error starting B2B engine</errorText>
<errorDescription>
<![CDATA[Error starting B2B engine. Cannot Initialize Transport ]]>
</errorDescription>
<errorSeverity>Error</errorSeverity>
</Exception>
2008.11.24 at 16:00:59:197: B2BStarter thread: B2B - (DEBUG) DBContext commit: Enter
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) DBContext commit: Transaction.commit()
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) DBContext commit: Leave
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) Engine:notifyAppInitError Exit
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - Exception Error -: AIP-50077: Cannot Initialize Transport
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - B2B Database might be down, so stop B2B Server!
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - Stop B2B Server...begin
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - Shutdown B2B
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - B2B Server shutdown
2008.11.24 at 16:00:59:213: B2BStarter thread: B2B - (DEBUG) B2BStarter - Stop B2B Server...end
2008.11.24 at 16:00:59:228: B2BStarter thread: B2B - (DEBUG) B2BStarter - Sleeping for 30000
How/where to set "jms.receiver.is_topic" header. please someone help me regarding this.I set the istopic is 'false" in the tranport parameter and redeployed the configuration.
I' m getting following logs in b2.log file
oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage Enter
2008.11.24 at 17:21:40:118: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage Map To Party : {transport_callout_properties=null, polling_interval=30000, transport_callout_waittime=30, Destination Provider Properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, transport_callout_library=null, Connection Factory Location=jms/QueueConnectionFactory, transport_callout_classname=null, Message Type=bytes, Subscriber ID=null, Factory Provider Properties=java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/, isTopic=false}
2008.11.24 at 17:21:40:118: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage Map mmm : null
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage message type 1
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage creating request message
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage setting payload and pc
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage final encryption step
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.exchange.generic.GenericExchangePlugin:GenericExchangePlugin:createMessage Exit
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Invoking PackMessage
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) MimePackaging:pack:Enter
2008.11.24 at 17:21:40:165: Thread-10: B2B - (DEBUG) MimePackaging:createMimeMessage:Enter
2008.11.24 at 17:21:40:243: Thread-10: B2B - (DEBUG) MimePackaging:createMimeMessage:number of pc components: 1
2008.11.24 at 17:21:40:243: Thread-10: B2B - (DEBUG) MimePackaging:createMimeBodyPart:Enter
2008.11.24 at 17:21:40:524: Thread-10: B2B - (DEBUG) MimePackaging:applySecurity:Enter
2008.11.24 at 17:21:40:524: Thread-10: B2B - (DEBUG) MimePackaging:applySecurity:Exit
2008.11.24 at 17:21:40:524: Thread-10: B2B - (DEBUG) MimePackaging:createMimeBodyPart:Exit
2008.11.24 at 17:21:40:540: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.packaging.SmimeSecureMessaging:SmimeSecureMessaging: setDigestAlgorithm using algorithm name Entering...
2008.11.24 at 17:21:40:540: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.packaging.SmimeSecureMessaging:SmimeSecureMessaging: setDigestAlgorithm using algorithm name Leaving...
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:applySecurity:Enter
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:applySecurity:Exit
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:createMimeMessage:Exit
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:getMimeContent:Enter
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:getMimeContent:Exit
2008.11.24 at 17:21:41:258: Thread-10: B2B - (DEBUG) MimePackaging:pack:Exit
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Invoking Pre-Transmit
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Enter
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Log & Update Database Tables
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Update the Message Table Row with message state Wait for Incoming Acknowledgment
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Create a Native Event Table row for outgoing Request Message
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.DbAccess:DbAccess:insertNativeEvtTblRow(3 params) Enter
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.DbAccess:insertNativeEvtTblRow msgInfo.id = 29675379
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.DbAccess:protocl id set A
2008.11.24 at 17:21:41:274: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.DbAccess:
** DbAccess:insertNativeEvtTblRow protocolCollabId = null
2008.11.24 at 17:21:41:977: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.DbAccess:DbAccess:insertNativeEvtTblRow(3 params) Exit
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Create Event Table row for Message Retries
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit timeToAck = Thu Jan 01 05:30:00 GMT+05:30 1970
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit business transaction info name null revision null
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:preTransmit Exit
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) DBContext commit: Enter
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) DBContext commit: Transaction.commit()
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) DBContext commit: Leave
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Calling Send to transmit the message
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) Protocol Name: JMS
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) Version Name: 1.0
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) Endpoint: jms://opnm:ormi://10.232.65.81:6005:home
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send URL: JMS://OPNM:ORMI://10.232.65.81:6005:HOME
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send TO Endpoint: 511 jms://opnm:ormi://10.232.65.81:6005:home
2008.11.24 at 17:21:42:149: Thread-10: B2B - (DEBUG)
Protocol = JMS
Version = 1.0
Transport Header
TO_PARTY:Acme
MSG_ID:29675379
FROM:GlobalChips
DOCTYPE_NAME:shiporderjms
jms.sender.jndi_destination_provider_properties:java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
DOCTYPE_REVISION:1.0
jms.sender.jndi_destination_location:opnm:ormi://10.232.65.81:6005:home
jms.sender.type:bytes
DATE:Mon, 24 Nov 2008 11:51:39 GMT
Content-Transfer-Encoding:binary
MSG_TYPE:1
jms.sender.factory_provider_properties:java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory;java.naming.security.credentials=welcome1;java.naming.security.principal=oc4jadmin;java.naming.provider.url=ormi://10.232.65.81:12603/
ACTION_NAME:BS_JMS
Content-Type:text/plain; charset=us-ascii
FROM_PARTY:GlobalChips
Connection:close
TO:Acme
MESSAGE-ID:29675379
jms.sender.jndi_connection_factory_location:jms/QueueConnectionFactory
jms.sender.is_topic:false
Parameters
-- listing properties --
http.sender.timeout=0
2008.11.24 at 17:21:42:211: Thread-10: B2B - (WARNING)
Message Transmission Exception
StackTrace java.util.MissingResourceException: Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found
at java.util.ResourceBundle.getObject(ResourceBundle.java:325)
at java.util.ResourceBundle.getObject(ResourceBundle.java:322)
at java.util.ResourceBundle.getString(ResourceBundle.java:285)
at oracle.tip.transport.IPTTransport.formMsg(IPTTransport.java:240)
at oracle.tip.transport.IPTTransport.log(IPTTransport.java:270)
at oracle.tip.transport.basic.jms.JMSConnectionFactoryFactory.getConnectionFactory(JMSConnectionFactoryFactory.java:138)
at oracle.tip.transport.basic.jms.JMSConnectionFactoryFactory.getQueueConnectionFactory(JMSConnectionFactoryFactory.java:83)
at oracle.tip.transport.basic.jms.JMSConnection.<init>(JMSConnection.java:124)
at oracle.tip.transport.basic.JMSSender.send(JMSSender.java:164)
at oracle.tip.transport.b2b.B2BTransport.send(B2BTransport.java:301)
at oracle.tip.adapter.b2b.transport.TransportInterface.send(TransportInterface.java:976)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequestPostColab(Request.java:1744)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequest(Request.java:968)
at oracle.tip.adapter.b2b.engine.Engine.processOutgoingMessage(Engine.java:1131)
at oracle.tip.adapter.b2b.data.MsgListener.onMessage(MsgListener.java:833)
at oracle.tip.adapter.b2b.data.MsgListener.run(MsgListener.java:400)
at java.lang.Thread.run(Thread.java:534)
2008.11.24 at 17:21:42:211: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:send Error in sending message
2008.11.24 at 17:21:42:211: Thread-10: B2B - (INFORMATION) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Request Message Transmission failed
2008.11.24 at 17:21:42:211: Thread-10: B2B - (DEBUG) DBContext beginTransaction: Enter
2008.11.24 at 17:21:42:211: Thread-10: B2B - (DEBUG) DBContext beginTransaction: Transaction.begin()
2008.11.24 at 17:21:42:211: Thread-10: B2B - (DEBUG) DBContext beginTransaction: Leave
2008.11.24 at 17:21:42:211: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequestPostColab Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found
Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found
2008.11.24 at 17:21:42:227: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:notifyApp retry value <= 0, so sending exception to IP_IN_QUEUE
2008.11.24 at 17:21:42:290: Thread-10: B2B - (DEBUG) Engine:notifyApp Enter
2008.11.24 at 17:21:42:305: Thread-10: B2B - (DEBUG) Enqueue Engine AQJMSCorrelationID = 9EBC96CB13E94D2193A63DBD20D00933
2008.11.24 at 17:21:42:305: Thread-10: B2B - (DEBUG) notifyApp:notifyApp Enqueue the ip exception message:
<Exception xmlns="http://integration.oracle.com/B2B/Exception" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<correlationId>29675379</correlationId>
<b2bMessageId>29675379</b2bMessageId>
<errorCode>AIP-50079</errorCode>
<errorText>Transport error: Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found
Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found</errorText>
<errorDescription>
<![CDATA[Machine Info: (pc022351)
Transport error: Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found
Can't find resource for bundle oracle.tip.transport.IPTResource, key JMSConnectionFactoryFactory_getConnectionFactory: JNDI Naming exception when looking up jms/QueueConnectionFactory: jms/QueueConnectionFactory not found ]]>
</errorDescription>
<errorSeverity>2</errorSeverity>
</Exception>
2008.11.24 at 17:21:42:305: Thread-10: B2B - (DEBUG) AQJMSCorrelationID = 9EBC96CB13E94D2193A63DBD20D00933
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) Engine:notifyApp Exit
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) DBContext commit: Enter
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) DBContext commit: Transaction.commit()
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) DBContext commit: Leave
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.msgproc.Request:outgoingRequest Exit
2008.11.24 at 17:21:42:321: Thread-10: B2B - (INFORMATION) oracle.tip.adapter.b2b.engine.Engine:processOutgoingMessage:
***** REQUEST MESSAGE *****
Exchange Protocol: Generic Version 1.0
Transport Protocol: JMS
Unique Message ID: 29675379
Trading Partner: Acme
Message Signed: No
Payload encrypted: No
Information incomplete
2008.11.24 at 17:21:42:321: Thread-10: B2B - (INFORMATION) oracle.tip.adapter.b2b.engine.Engine:processOutgoingMessage Exit
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) DBContext commit: Enter
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) DBContext commit: Leave
2008.11.24 at 17:21:42:321: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:onMessage Exit
Edited by: user652656 on Nov 24, 2008 3:53 AM -
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. -
IOS native extension for networkinfo throws an error
Hello,
I'm trying to check wether the active connection on a device is Wifi or mobile data connection. On android this works fine but on iOS there is a problem.
A native extension exists for this see here.
The problem is that the line below throws an error: 'Error #1009: Cannot access a property or method of a null object reference.'
var interfaces:Vector.<com.adobe.nativeExtensions.Networkinfo.NetworkInterface> = com.adobe.nativeExtensions.Networkinfo.NetworkInfo.networkInfo.findInterfaces();
I'm using AIR3.1 (no idea if this works on 3.0).
Anybody a solution?Ever solve this? I'm also getting errors...
Specifically:
ArgumentError: Error #3500: The extension context does not have a method with the name getInterfaces. -
Air Native Extension - Java Key Listener
Hello all,
Firstly I'd like to thank you for creating an excellent and helpful community. I have an issue I have been stuck on for around 2 weeks now.
I am creating an android native extension to listen to key input from a proprietary remote control device. GameInput does not recognise it as a game controller so we have to create a native extension to get the input. I have it working fully except for one issue; if the game loses context (eg the user gets a phone call or the game goes into the background for any other reason) I do not get any other input.
The way I am doing it is to attach an onKeyListener to the currently focused View (an AirWindowSurfaceView). This works perfectly, but when the context is lost I'm assuming the AirWindowSurfaceView changes and I cannot find a way to get a reference to the new one. Here is my key listener setup code (from the native Java):
public void updateListeners()
if(_view != null)
_view.setOnKeyListener(null); //remove from the old view
_view.setOnGenericMotionListener(null);
_context.dispatchStatusEventAsync(_view.toString(), "view"); //send the current view details
_view = _context.getActivity().getCurrentFocus(); //set the new view
_context.dispatchStatusEventAsync(_view.toString(), "view");
if(_onKeyListener == null)
_onKeyListener = new NativeGamepadKeyListener(_context, this); //create new key listener
if(_onGenericMotionListener == null)
_onGenericMotionListener = new NativeGamepadMotionListener(_context, this); //create a new motion listener
_view.setOnKeyListener(_onKeyListener); //set on the new view
_view.setOnGenericMotionListener(_onGenericMotionListener);
This updateListeners function is called when I get a focus change event on the current view (attached in a similar way) but this doesn't seem to keep it up to date with the current View.
Please note I'm a newbie at making extensions like these and might be going about it totally the wrong way - if I am and you have any suggestions as to the best way to use an onKeyListener in a native extension I'd love to hear it.
Thanks in advance for your help!I am not able to solve this yet. Is anybody else facing this this problem.
-
Facing error#3500 while running AIR native extension for windows
Hi,
I am stuck in a problem regarding AIR native extension from couple of days.Whenever I tried to run an extension for windows it gives error code 3500 (extension context cannot have the method ie methodname).I am doing all things correctly but don't know where I lack.I am using Flash Builder 4.6 and 64 bit machine.I made the sample extension POC for android ,they are working fine.No such issue.
Please post your valuable comments.Eagerly waiting for reply.
ThanksHi,
Finally I got the answer to my problem.Actually I dont have the dependency dll of .net framework 4.So I nstall these and now my code is working fine.
Thanks -
Air Native Extension for OS X. Cant call functions from native code.
Hi, I am trying to build native extension for OS X.
After creating context, I try to call native function with "call" method, but always I have an error "The extension context does not have a method with the name ..."
In as3 code my ExtensionContext is not null, so it's okay. And in native objective-c code I have a function, which I call in as3 code.
What should I do?
Here my code.
Objective-c:
FREContext AirContext = nil;
FREObject init(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
return nil;
FREObject someFunction(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
FREDispatchStatusEventAsync(AirContext ,(uint8_t*) "SOME_EVENT", (uint8_t*) "some information" );
return nil;
void ANEContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet)
NSLog(@"Entering ContextInitinalizer()");
*numFunctionsToTest = 5;
FRENamedFunction* func = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * *numFunctionsToTest);
func[0].name = (const uint8_t*) "init";
func[0].functionData = NULL;
func[0].function = &init;
func[1].name = (const uint8_t*) "someFunction";
func[1].functionData = NULL;
func[1].function = &someFunction
// other blank functions
*functionsToSet = func;
AirContext = ctx;
FREDispatchStatusEventAsync(AirContext ,(uint8_t*) "SOME_EVENT", (uint8_t*) "some information" );
void ContextFinalizer(FREContext ctx) {
NSLog(@"Entering ContextFinalizer()");
NSLog(@"Exiting ContextFinalizer()");
void ANEInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet )
NSLog(@"Entering ExtInitializer()");
*extDataToSet = NULL;
*ctxInitializerToSet = &ContextInitializer;
*ctxFinalizerToSet = &ContextFinalizer;
NSLog(@"Exiting ExtInitializer()");
void ANEFinalizer(void* extData)
return;
ActionScript3:
public class MyANE extends EventDispatcher{
private static var _instance:MyANE;
private var extCtx:ExtensionContext;
public function MyANE()
if (!_instance)
if (this.isSupported)
extCtx = ExtensionContext.createExtensionContext("my.awesome.ane", null);
if (extCtx != null)
trace('context is okay'); //this trace works
extCtx.addEventListener(StatusEvent.STATUS, onStatus);
} else
trace('context is null.');
_instance = this;
else
throw Error('singleton');
public static function getInstance():MyANE
return _instance != null ? _instance : new MyANE();
public function get isSupported():Boolean
var value:Boolean = Capabilities.manufacturer.indexOf('Macintosh') > -1;
trace(value ? 'supported' : 'not supported ');
return value;
private function onStatus(event:StatusEvent):void
trace('Event', event, 'code', event.code, 'level', event.level); //this traсе does not works
private function test(): void
extCtx.call("someFunction"); //this throws error
XML:
<extension xmlns="http://ns.adobe.com/air/extension/3.9">
<id>my.awesome.ane</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="MacOS-x86">
<applicationDeployment>
<nativeLibrary>MyANE.framework</nativeLibrary>
<initializer>ANEInitializer</initializer>
<finalizer>ANEFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
And this script Im using for build ANE:
mv ../as3/bin/MyANE.swc .
unzip MyANE.swc
mv library.swf mac/
rm catalog.xml
rsync -a ../Obective-C/ANE/Build/Products/Debug/ANE.framework/ mac/ANE.framework/
adt -package -target ane MyANE.ane extension.xml -swc MyANE.swc -platform MacOS-x86 -C mac .
mv MyANE.ane ~/Work/_Projects/test/libs-ane/I haven't done Objective C in a long time, but if I'm not mistaken, it requires the semicolon to terminate a line of code. The line containing "func[1].function = &someFunction" does not have that termination and since that is the function you are trying to execute, maybe that is the source of the error.
-
Configure a default platform for mobile native extensions.
Been playing around with native extensions on mobile devices starting with the tutorial at http://www.adobe.com/devnet/air/articles/developing-native-extensions-air.html. Things are working great when I deploy it to my Android device, but I am no longer able to test it on the simulator on my dev desktop box. I am having problems figuring out how to set up a default platform which should be called in the case that I am running the application on something other than a true Android device (so either my workstation or an iOS device.) Has someone figured out how to set up a default platform that can handle methods that are currently unimplemented for other platforms, or will no be supported?
Hi Pāvils Jurjāns,
If you are developing Flash Lite for S60 devices, such as the
E65, then you can package your application into a .sis file, which
will install the Flash Lite application and a launcher icon to any
folder you specify on the device.
There are a couple of Flash Lite .sis builder applications
available to purchase online, there is also a tutorial of how to do
it yourself on the Adobe Mobile and Devices Developer Center.
I terms of how serious is Flash Lite in developing device
applications, it depends on what you want to achieve. We have found
it very capable for most applications we need to develop. Sure,
there are some things it cannot do, but then that can also be said
of J2ME.
Regards -
Hello world Native Extension API
Hi all :-)
I am an android expert and I'd really love to create some cool extensions like the android notifications, but since I don't know much about Flex, I have a lot of trouble getting the test vibrator with native extension working.
(http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html)
My sample is still buggy, it is probably beginner's bug, but I don't see how to fix it yet.
I am surely not the only native guy trying to do this, so I would like to sumarize here all the steps needed to have our first hello world Native Extension API
Install Flex 4.5.1 http://www.adobe.com/go/try_flashbuilder/ and download the Adobe AIR 3.0 RC http://labs.adobe.com/downloads/air3.html as well as the sample files http://download.macromedia.com/pub/developer/air/ane/Vibration.zip
Create a test Flex mobile project.(all the deffault parameters are fine) I'll call it HelloWorldNativeExtension.
(If AIR 3 is not released yet) Do the following to tell Flex builder to use the RC on your test project : http://forums.adobe.com/thread/899921
Unzip the vibration.zip, and go to ready to use extansion.
Go to Project -> Flex buildpath -> Libraries -> Add a new swc. Add the ready to use extension as a library. Then open the extensions properties and change the link type from "bundled with" to "external linkage"
Go to HelloworldNativeExtension-app.xml and in the tag manifestAddition, add : <uses-permission android:name="android.permission.VIBRATE"/>
Write a sample view (as described below)
Run (target platform->android and then chosse to run on a device)
When asked to update the air version, answer yes
Wait a loooong time before it actually start.
Here is my code for the sample view:
In HelloworldNativeExtension.mxml
Use the following code :
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import com.adobe.nativeExtensions.Vibration;
protected function testButton():void
textArea.text="Before vibration";
var vibe:Vibration;
if (Vibration.isSupported)
vibe = new Vibration();
vibe.vibrate(2000);
textArea.text="After vibration";
]]>
</fx:Script>
<s:Panel title="Exemple MXML" width="330">
<s:layout>
<s:VerticalLayout paddingLeft="15" paddingTop="15" paddingBottom="15" paddingRight="15"/>
</s:layout>
<s:Label x="223" y="173" text="test" id="textArea"/>
<s:Button label="Vibrate" click="testButton()"/>
<s:Label id="result" width="265"/>
</s:Panel>
</s:Application>
Well... so far my project doesn't compile because the library is loaded externally. It compiles fine if I add it as a bundled library, but then the virbrator can't work (External native code have to be loaded externally)
And thus so far I get the errors :
Description
Ressource
Chemin
Emplacement
Type
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.display]::IBitmapDrawable.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
1046: Ce type est introuvable ou n'est pas une constante de compilation : [flash.events]::IEventDispatcher.
HelloworldNativeExtension
Inconnu
Erreur Flex
(Which means something like : 1046: this type cannot be resolved or is not in the buildpath ... So it probably means the project doesn't compile well)
So I'm still trying to figure out what to do, but I am close I think... Very close.Yes, in fact you are very close
You will have to put an <extensions> tag in app-xml if not already done so:
<extensions>
<extensionID>com.adobe.Vibration</extensionID>
<extensions>
Then since it is FlashBuilder 4.5.1, you will have to package the android application through command line since it requires 1 more parameter -extdir :
adt -package -target apk . . . app.apk app.xml app.swf -extdir extensions
extensions is the directory which contains your .ane file. Checkout http://www.adobe.com/devnet/air/articles/extending-air.html#articlecontentAdobe_numberedhe ader_1 for more details.
Thats all. You should be able to run your app now. Let me know if it still doesnt work.
Thanks,
Meet
AIR Team -
Flash CS6 IDE Air Native Extensions problem HELP
i'm trying to test out CS6's new native extension (ANE) but I'm having a difficult time getting it to work.
First I went to Adobe's page: http://www.adobe.com/devnet/air/native-extensions-for-air.html
Downloaded the "Vibration" ane and then through the Actionscript settings panel added the .ane file to my app and then in my actionscript tried to add the code:
import com.adobe.extensions.Vibration
var vibe:Vibration;
vibe = new Vibration();
vibe.vibrate();
But when I go to compile I get this error:
Scene 1, Layer 'Layer 2', Frame 1, Line 3
1172: Definition com.adobe:Vibration could not be found.
What do I need to do to get this running? I've tried several different things and variations on the above code but nothing seems to do it. Help!Well that gets me furthur than before. Thank you. I had to change a few things.
import com.adobe.extensions.Vibration
I had to change to:
import com.adobe.nativeExtensions.Vibration
but now when I test in the debugger I get this error:
[SWF] iOS.swf - 3827 bytes after decompression
Vibration Constructor
Vibration Constructor: Create an extension context
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.adobe.nativeExtensions::Vibration$/initExtension()[/Users/mgarner/Dropbox/_apps/score board/com/adobe/nativeExtensions/Vibration.as:58]
at com.adobe.nativeExtensions::Vibration()[/Users/mgarner/Dropbox/_apps/scoreboard/com/adobe /nativeExtensions/Vibration.as:32]
at iOS_fla::MainTimeline/frame1()[iOS_fla.MainTimeline::frame1:14]
at runtime::ContentPlayer/loadInitialContent()
at runtime::ContentPlayer/playRawContent()
at runtime::ContentPlayer/playContent()
at runtime::AppRunner/run()
at ADLAppEntry/run()
at global/runtime::ADLEntry()
And when I publich to app the phone doesn't vibrate, but all my other functions and actions are working. Any ideas? -
Has anyone anywhere managed to get "AIR Native Extensions" to work with Flash CS 5.5?
I'm trying to integrate Adobe's "Gyroscope" example of ANE to work from Flash Professional CS 5.5.
http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/gyroscope.html
Apparently, one has to use the somewhat crude "ADT" command-line tool to build an app that uses Native Extensions.
Unfortunately, I cannot get past the numerous errors ADT is throwing at me. The latest is:
unexpected failure: inputs not set
java.lang.IllegalStateException: inputs not set
at com.adobe.air.ApplicationPackager.createPackage(ApplicationPackager.java:62)
at com.adobe.air.ADT.parseArgsAndGo(ADT.java:556)
at com.adobe.air.ADT.run(ADT.java:413)
at com.adobe.air.ADT.main(ADT.java:463)
Unfortunately, I'm not an advanced developer, so I really don't know what any of that means. (But I'm sure if I can just get this one example to compile and run, I'll be better able to perform the necessary tasks in the future.)
Can someone PLEASE help me?
Thanks.
MikeIf you are looking for input from others, you are more likely to find people with either similar problems or complaints in the Flash General Forum (http://forums.adobe.com/community/flash/flash_general?view=discussions) rather than here in the Actionscript 3 forum. If you scan thru it for the past few weeks/months you might even find someone with the same problem.
Maybe you are looking for
-
Can't get past a grey "you need to restart your computer screen"
Hello, I have a few month old iMac 27" i7 quad core for music use and did an update this morning which consisted of an itunes update and update to the screen firmware and two other things I can't remember. Do the usual install and restart business an
-
How do i download kodak software for a 5200 printer for a macbook pro
I'm a new MacBook Pro user and have a Kodak 5200 wireless printer. Where can I find the driver software and how do I download it? (Kodak don't seem to be a trusted supplier for Apple purposes). Thanks in anticipation of help.
-
2 Reporting services point configure
Hi, In our environment we configured Reporting services point in stand alone primary server and working fine. Also we migrate reports from sccm 2007. Now my question is Shall I configure one more Reporting services point in helper server. If i confi
-
Hi All, anyone with this problem with Acrobat Pro XI, IM USING MAC, also Yosemite if that helps. Also Adobe CC, BASICALLY IT just quit and i had to uninstall, re install, and I get this ERROR: DW006: Apple Package failed to install successfully. ERRO
-
Unable to print the document thru Crystal Integration
Hi All, Could anybody help me on the issue given below. One of our client Issue while printing from crystal Integration in SAP Business One. I can able to view the crystal report through Crystal Integration but i am unable to print the document.No Er