Skip to main content
Known Participant
March 31, 2016
Question

osx ane x86_64 fails with error #3500: The extension context does not have a method for name

  • March 31, 2016
  • 9 replies
  • 3532 views

Hello,

I'm developing my ANE for osx, tried sdk 19r (i386), 20r and 21r, you know they only support x86_64. No results as expected:

- myAneExt.framework is built with success in El Capitan / xcode 7.3.
- it's actually a POC to test a single method, quite sureI'm ok with my code (both c/c++ or actionscript)
- Max number version in extensiondescriptor name is 20, weird that 21 return an error (invalid namespace), so I have to build .ANE against 19/20

- Tried with no luck the workaround as suggested here: http://blogs.adobe.com/flashplayer/2015/12/air-64-bit-on-mac-osx.html

Of course, i'll continue to check it's my issue, but I'm quite sure is not, afaik not much devs are actually applying to osx ane, but they deserve things works.

Please, don't let this post without relevant answer.

thanx in advance

Marco Fusetti aka Jaco

This topic has been closed for replies.

9 replies

Santanu Karar
Known Participant
July 22, 2016

I was having this error with stable release SDK 22.0. Following solution fixed my error:

I fixed the problem by removing Adobe AIR.framework from Build Phases > Link Binary With Libraries section in XCode. You only need to include Adobe AIR_64

.

Thanks FlashJoe​.FlashJoe

My XCode architecture is Universal (32/64-bit intel).

Participating Frequently
May 11, 2016

I don't think old versions of Flash work with 32-bit ANE's any more.

I've tried building a 32bit ANE, and Flash will not load it.  I suspect this is because when publishing for AIR, Flash is using the AIR SDK including its compiler.(This seems to have been the case for ages)

BTW. There are other issues with using recent AIR SDK's with old versions of Flash, as iOS will not publish on AIR 20 or newer, as there is a compiler arguments error. I suspect that the AIR iOS compiler / publish system was changed so that the command line that old versions of Flash use, are not compatible with newer AIR SDKs :-(  However I've not had time to figure out precisely what the difference is.

jaco1Author
Known Participant
May 7, 2016

all requirements by xcode are in place since I started the topic.

Did you get "working" in your preferred IDE (debug/profile)?

Known Participant
May 7, 2016

After switching back and forth between branches a couple of times last night, it started working again. I can't come up with an explanation of how. You have to jump through a few hoops with Flash Builder 4.7:

1) In your native Xcode project, any dependencies *must* be linked using -weak_library

2) The dylib files have to be copied in to the framework in your Xcode project with a custom step (either a custom copy step to put them in the "Executables" folder, or a post-process step.

3) You have to unpack the ANEs into sub-folders of bin-debug/META-INF/AIR/extensions/

- NOTE, this does not have to be "com.adobe.extension". You can have multiple folders there named whatever you want. I use one per ANE, since we have several in our project.

4) Make sure the ANE is packaged in your build. You have to ignore the packaging warning Flash Builder pops up when you debug, which appears to be the same warning for a missing ANE or a 64-bit ANE.

The working project I have right now is using AIR 21.0.0.176

jaco1Author
Known Participant
May 7, 2016

hi,

currently, the only way I've got a [somehow] working ane is:

- latest beta runtime (yet 22.0.0.121), so Adobe AIR_64 to compile against

- latest beta sdk

- build/package install and run the app

can't get to work in debug phases, which is the main problem. You can't rely on beta and build/pkg/run without debugging features, it's insane.

Oldes
Inspiring
April 19, 2016

I was fighting hard with it too.. this is working simple ANE GitHub - Oldes/ANEAmanitaOSX: MacOS Air Native Extension if it helps.

And here is more advanced working ANE for SteamWorks GitHub - Oldes/FRESteamWorks at AIR21_SteamWorks136 .

Important part is in 'other flags' in xcode project as is visible here: FRESteamWorks/project.pbxproj at AIR21_SteamWorks136 · Oldes/FRESteamWorks · GitHub

Known Participant
April 19, 2016

Thanks for this - comparing my settings against yours got my ANEs up and working.

Some notes:

- Don't have the dylibs in your "linked frameworks and libraries" setting

- dylibs need to be copied to the Executable directory instead of the Resources directory. For that you can add a custom "Copy Files" build step so you don't have to do so with an external script (like your build-mac.command).

- set the dylibs to weak_library in the build settings.

Known Participant
May 6, 2016

So - this was working briefly. Today, for no apparent reason, it no longer is. I've unpacked the ANEs into bin-debug/META-INF/AIR/extensions again, but I'm back to error #3500 when debugging.

There doesn't seem to be any logic to it at this point. This is making maintaining existing Air applications nearly impossible.

jaco1Author
Known Participant
April 17, 2016

hi 2 all,

got working build  with the latest 22sdk 0.97, I've xcode build .framework against latest runtime and install as release.

My next attempts will be: downgrade air runtime to 21, try to get a working sdk with my IDE (intellij), flex 4.15 + air sdk 22b. Debug workflow is actually affected to error #3500 since is not the latest.

Known Participant
April 15, 2016

I created a very simple ANE that has a dylib dependency to reproduce the problem. I've packaged it up and sent it over for the team at Adobe to look at. Hopefully we hear something official soon.

Participating Frequently
April 29, 2016

I have the same problem.

I've spent several days trying to figure out why I get Error 3500 when running my ANE on OSX64.

I presumed I'd screwed up, but now I found this thread, I realize that the problem is the build process and that Adobe have admitted they have an issue

( Error #3500: The extension context does not have a method with name xxx  )

Unfortunately, I have the same problem with embedding external libraries into the ANE.

I need to link the LAME MP3 compression library, but its only available as a Framework (unless I compile the whole of LAME myself - which I've currently not been able to do).

At the moment my ANE is only 8k, which indicates its not linking the LAME framework inside the ANE ;-(

However I can't see any way to either get XCode or adt to embed the LAME framework inside the ANE.

I will need to park this ANE (on OSX) until Adobe have resolved this issue, otherwise its going to consume a huge amount of time  (and hence money) to get it to work with the existing  hacks.

Participant
April 13, 2016

I fixed the problem by removing Adobe AIR.framework from Build Phases > Link Binary With Libraries section in XCode. You only need to include Adobe AIR_64. Under Build Settings > Architectures choose Standard Architecture (64bit-Intel) (x86_64). The resulting library only supports 64bit platforms but that shouldn't be an issue according to this post. I am using FlashBuilder 4.7 with Flex 4.15.0 + AIR 21.0 SDK.

jaco1Author
Known Participant
April 14, 2016

many thanx FlashJoe, I'll check asap and return my feebacks.

Marco Fusetti aka Jaco

Adobe Employee
April 1, 2016

Hi Jaco ,

From your post I can infer that to test your POC, you want to create ANE both for AIR 19 and AIR 20.

With AIR 20 we are providing the  64 bit AIR for Mac. So you need to create 32 bit ANE for AIR 19 and 64 bit ANE for AIR 20.

I hope that you have tried out the link Error #3500: The extension context does not have a method with name xxx for AIR 20(If not please try that out).

Please let me know whether you are getting Error#3500 for AIR 20 only?

Are you able to launch the app using adl when you are using AIR 19 without any issue ?

jaco1Author
Known Participant
April 1, 2016

hi Nitanwar and thanx

I don't want to build my ane for 19 and 20, just need it works with the latest 21 (I've other projects for mobile and it seems it fix an issue with iOS simulator), of course I tried the link you suggested, no success. However if it's working, it degrades an already overcomplicated process (build/test/debug) crossing two IDEs and four main projects/steps (xcode, lib, ane_build automation, final consumer app)

I can actually compile also against 21 (I had wrong adt cmd line, now fixed).

I made it to work just in this case:

compile against 19, with right requirements (32bit arch, ext_descriptor blah blah), downgrading air runtime to 19, which is higly unsatisfactory result with additional [annoying] runtime upgrade dialog box

20 and 21actually don't works, neither from debug or packaging as release then install/launch

If I try to package for 19 and launch having the latest runtime (21), it complaints about "missing extension", due to the missing 32bit support, so I higly suspect that app+ane built < 20 and currently installed by users with will stop to work at all after runtime updgrade.

I think is a severe issue, please fix asap, currently the c/c++ runtime in osx is screwed up.

let me know if you need source code, but it has nothing special, you can try starting from scratch.

I'm using xcode, intellij on El Capitan

regards

Marco Fusetti aka Jaco

Adobe Employee
April 1, 2016

Thanks Jaco for verifying it on AIR 19 and you are right, app+ane built <20 will not work with AIR runtime 20 or above.

It will be very helpful if you can send us your project so that we can can debug the issue at our end .You can email the project at nitanwar[@]adobe.com