• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

TypeError: Error #2007: Parameter Possible symbol clash in multiple swfs, abcenv must be non-null

Enthusiast ,
Oct 09, 2013 Oct 09, 2013

Copy link to clipboard

Copied

AIR for iOS 3.9 beta - Oct 9, 2013 update. Also AIR 3.8 throws the same errors.

The exception is thrown only when doing an AOT compile (quick compile works fine).

It is thrown as soon as an external SWF containing ABC is loaded into the current ApplicationDomain.

The "Main" SWF doesn't contain anything special (at all), so I have no idea what the "possible symbol clash" is.

Possible hint: why is everything in my stack trace doubled up?

Anyone know what the heck this error is talking about and whether it's something I have the faintest hope of fixing before I need to release thing thing in two days' time?

What is "abcenv"? And how do I set it to non-null?

Main Thread (Suspended: TypeError: Error #2007: Parameter Possible symbol clash in multiple swfs, abcenv must be non-null.)

view::EnvironmentButtonView/init [no source]

view::EnvironmentButtonView/init [no source]

flash.display::Sprite [no source]

flash.display::Sprite [no source]

flash.display::MovieClip [no source]

flash.display::MovieClip [no source]

flash.display::Sprite [no source]

flash.display::Sprite [no source]

flash.display::MovieClip [no source]

flash.display::MovieClip [no source]
TOPICS
Air beta

Views

1.8K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Oct 09, 2013 Oct 09, 2013

Copy link to clipboard

Copied

This error occurs when you try loading multiple swfs, which both have a same symbol, resulting in a conflict.

AOT currently cannot handle symbol conflicts, and throws this error when it finds one.

A reolution is to make sure that there aren't symbols with same names in different swf files that you are loading.

Here, could it be that EnvironmentButtonView is present in more than one swfs?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Oct 09, 2013 Oct 09, 2013

Copy link to clipboard

Copied

Thank you for the quick and helpful response!

This is an interesting question, because there are in fact 2 SWFs that are identical, except one is retina, the other is not.

However, ONLY ONE is ever loaded at runtime - we determine the resolution of the device and then load the appropriate SFW file.

Now, both SWFs ARE PACKAGED with the app, but like I said, I'm only ever loading 1 at a time. I do, however wonder whether it's the packaging of the SWF that is enough to cause the error.

I'm currently testing this by removing one of them from the package, and testing on a single device that would load the other. If I don't get the error, then I know this is the issue, but then I'm in big trouble because the design (probably wrong) of this app is such that it's loading in all assets, in their correct positions, in a fully laid out SWF file, based on resolution. I would completely need to alter my strategy if the problem is in the packaging, because if I DON'T package the SWFs, then they can't be found at runtime.

Unless there's another way to include the SWFs without packaging them?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Oct 09, 2013 Oct 09, 2013

Copy link to clipboard

Copied

So yes I can confirm that merely being present in the PACKAGE is enough to cause this error. Are there any other ways to load an external SWF file without it residing within the package? I suppose not, otherwise how does it get on the iOS device's storage... right?

Currently the assets containing ABC are all just linkages to classes within by FlashBuilder project, for example, EnvironmentButtonView extends MovieClip. This leads me to wonder whether I can circumvent this issue by making and EnvironmentButtonView and an EnvironmentButtonView2X, both extending MovieClip, both implementing IEnvironmentButtonView or something to that effect. Would this be enough to prevent the collision?

What exactly constitutes a "symbol" in this case - is it the linkage identifier? Or is it the library name of the item? It would be relatively easy to simply update the library item names in one of the SWFs (for example, updating them all to have a 2X suffix), if I don't have to change the actual linkage identifier...

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Oct 09, 2013 Oct 09, 2013

Copy link to clipboard

Copied

So what actually defines the "symbol name" as you mention?

Is it the library item name?

The instance name?

The linkage identifier?

UPDATE

I have:

- updated all library item names in one of the SWFs to append 2X

- modified all AS linkages to point to a Class2X version of each class, subclassing the non-2X version of that class

- renamed all instance names of all stage instances by prepending a 2X

FURTHER:

- duplicated each MovieClip and removed the original, so not even internal IDs should remain the same.

Essentially, none of the library items, instance names or linkage identifiers remain the same between the two SWFs (one is loaded at runtime, the other is not, but they're both packaged with the app).

And yet the error persists. The only way I can get it to go away is to completely delete the stage instances. The debug trace is showing the error at the Event.ADDED_TO_STAGE callback. Stepping through the debugger iterates through all the stage instances of my Button symbols, throwing up an error for each one (there are 9). And after that, no more errors. So I know which symbols are causing the error, just have no idea how to resolve the issue.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 21, 2013 Nov 21, 2013

Copy link to clipboard

Copied

LATEST

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines