freshplanet / ANE-Chartboost

Air Native Extension for Chartboost (iOS + Android)
Apache License 2.0
36 stars 28 forks source link

Bug when combining with the Network ANE from Adobe #3

Open alanlanglois opened 11 years ago

alanlanglois commented 11 years ago

The com.adobe.extension.Network ANE from Adobe was working fine before I integrated the Charboost ANE (and I'm using 4 other ANE: FB / MobileBackup / InApp / Revmob)

I'm getting this message when running it on my iphone and trying to access to the MAC address of the device: Error #3500: The extension context does not have a method with the name getInterfaces.

I think there is some kind of conflicts between the two ANEs, but don't really know where as I'm not an expert building ANE.

You'll find the the Network ANE from Adobe here: http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/networkinfo.html

xperiments commented 11 years ago

Hi, found the problem in the 2 ANE files, both Adobe & freshplanet uses the same ContextInitializer name, when really it must be changed between each library to avoid these conficts.

The problem is here:

void ExtInitializer(void* extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer\ ctxFinalizerToSet) { NSLog(@"Entering AirChartboostExtInitializer()");

*extDataToSet = NULL;
*ctxInitializerToSet = &ContextInitializer;
*ctxFinalizerToSet = &ContextFinalizer;

NSLog(@"Exiting AirChartboostExtInitializer()");

}

Where the before code will fail, next code will be ok

void ExtInitializer(void* extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer\ ctxFinalizerToSet) { NSLog(@"Entering AirChartboostExtInitializer()");

*extDataToSet = NULL;
*ctxInitializerToSet = &AirChartboostContextInitializer;
*ctxFinalizerToSet = &AirChartboostContextFinalizer;

NSLog(@"Exiting AirChartboostExtInitializer()");

}

Note that we renamed the ContextInitializer & ContextFinalizer to AirChartboostContextInitializer & AirChartboostContextFinalizer

I hope it helps