Skip to main content
Inspiring
October 5, 2017
Question

AIR Admob ANE issue #3500: The extension context does not have a method with the name cacheInterstitial

  • October 5, 2017
  • 2 replies
  • 3114 views

I'm trying to make google adverts in my game.I use Pozirk Ane admob.I added library files and ane on Actionscript 3 settings. When I test Debug and I got this error.

ANE Link

https://github.com/pozirk/ANEAdMob

I couldn't figure out where is the error.

The error

[SWF] com.pozirk.ads.AdMob - 7065 bytes after decompression
  
[SWF] Testreklam.swf - 45613 bytes after decompression
  
ArgumentError: Error #3500: The extension context does not have a method with the name cacheInterstitial.
  at flash
.external::ExtensionContext/_call()
  at flash
.external::ExtensionContext/call()
  at com
.pozirk.ads.admob::AdMob/cacheInterstitial()[D:\Pozirk\_projects\ANEAdMob\air\AdMob\com\pozirk\ads\admob\AdMob.as:83]
  at
Main()[C:\APK\Reklam\Main.as:43]
  at runtime
::ContentPlayer/loadInitialContent()
  at runtime
::ContentPlayer/playRawContent()
  at runtime
::ContentPlayer/playContent()
  at runtime
::AppRunner/run()
  at
ADLAppEntry/run()
  at global
/runtime::ADLEntry()

My Main.as code

package  {

  
import flash.display.MovieClip;
  
import com.pozirk.ads.admob.AdMob;
  
import com.pozirk.ads.admob.AdParams;
  
import com.pozirk.ads.admob.AdEvent;
  
import flash.events.MouseEvent;

  
public class Main extends MovieClip {
  
private var _bannerAdUID:String = "ca-app-pub-3940256099942544/6300978111";//BİZİMDEGİL
  
private var _intersAdUID:String = "ca-app-pub-4769962435850149/5055329136";
  
protected var _banner:AdMob = new AdMob();
  
protected var _inters:AdMob = new AdMob();
  
private var _initOK:Boolean = false;
  
private var _isShow:Boolean = false;
  
private var _cacheOK:Boolean = false;  

  
public function Main() {
  
// constructor code
  btBanner
.addEventListener(MouseEvent.CLICK, showBanner);
  btInters
.addEventListener(MouseEvent.CLICK, showInterstitial);

  _banner
.init();
_banner
.addEventListener(AdEvent.INIT_OK, onInitEvent);
_banner
.addEventListener(AdEvent.INIT_FAIL, onEvent);
_banner
.addEventListener(AdEvent.BANNER_SHOW_OK, onEvent);
_banner
.addEventListener(AdEvent.BANNER_SHOW_FAIL, onEvent);
_banner
.addEventListener(AdEvent.BANNER_LEFT_APP, onEvent);
_banner
.addEventListener(AdEvent.BANNER_OPENED, onEvent);
_banner
.addEventListener(AdEvent.BANNER_CLOSED, onEvent);

_inters
.init();
_inters
.addEventListener(AdEvent.INIT_OK, onInitEvent);
_inters
.addEventListener(AdEvent.INIT_FAIL, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_SHOW_OK, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_SHOW_FAIL, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_CACHE_OK, onCacheEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_CACHE_FAIL, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_LEFT_APP, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_OPENED, onEvent);
_inters
.addEventListener(AdEvent.INTERSTITIAL_CLOSED, onCloseIntersEvent);

_inters
.cacheInterstitial(_intersAdUID);
  
}


  
protected function onEvent(event:AdEvent😞void {

}

protected function onInitEvent(event:AdEvent😞void {
  _initOK
= true;
}

protected function onCacheEvent(event:AdEvent😞void {
  _cacheOK
= true;
}

protected function onCloseIntersEvent(event:AdEvent😞void {
  _inters
.cacheInterstitial(_intersAdUID);
}


////////////


private function showBanner(e:MouseEvent😞void {
  
if(_initOK) {
  
if(!_isShow) {
  _banner
.show(_bannerAdUID, AdParams.SIZE_SMART_BANNER, AdParams.HALIGN_CENTER, AdParams.VALIGN_BOTTOM);
  _isShow
= true;
  
}else {
  _banner
.hide();
  _isShow
= false;
  
}
  
} else {
  trace
("Banner Not Ready.");
  
}
}

private function showInterstitial(e:MouseEvent😞void {
  
if(_initOK && _cacheOK) {
  _inters
.showInterstitial();
  
} else {
  trace
("Inters Not Ready.");
  
}
}









  
}

}

APP XML file code

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<application xmlns="http://ns.adobe.com/air/application/24.0">
 
<id>Testreklam</id>
 
<versionNumber>1.0.0</versionNumber>
 
<versionLabel/>
 
<filename>Testreklam</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>Testreklam</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>Testreklam.swf</content>
  
<systemChrome>standard</systemChrome>
  
<transparent>false</transparent>
  
<visible>true</visible>
  
<fullScreen>true</fullScreen>
  
<aspectRatio>portrait</aspectRatio>
  
<renderMode>direct</renderMode>
  
<autoOrients>false</autoOrients></initialWindow>
 
<icon>
  
<image72x72>AppIconsForPublish/Medal-2-icon.png</image72x72>
 
</icon>
 
<customUpdateUI>false</customUpdateUI>
 
<allowBrowserInvocation>false</allowBrowserInvocation>
 
<android>
  
<manifestAdditions>
  
<![CDATA[<manifest><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><application>
<meta-data android:name="com.google.android.gms.version" android:value="4323000" /> <!-- should be android:value="@integer/google_play_services_version" --> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
</application></manifest>]]>
  
</manifestAdditions>
  
</android>
 
<versionLabel> </versionLabel>
 
<extensions>
  
<extensionID>com.pozirk.ads.AdMob</extensionID>
 
</extensions>
</application>

This topic has been closed for replies.

2 replies

JoãoCésar17023019
Community Expert
Community Expert
October 5, 2017

I'm developing a game using this ANE too.

This error is because you're running the ANE inside the Animate IDE. You need to test on an android emulator or on android devices.

Add if statements in your code to check if you're on mobile or not.

KucuKekoAuthor
Inspiring
October 5, 2017

Can you share your code please.Thanks

kglad
Community Expert
Community Expert
October 5, 2017

are you testing on an android device (not a simulator)?

(and your code is unreadable.)

KucuKekoAuthor
Inspiring
October 5, 2017

No I can't.Because it's created apk3301628292574833117.tmp file when I tried export as apk.

KucuKekoAuthor
Inspiring
October 6, 2017

if you attach an android mobile by usb and publish to your android mobile without error you will create an apk file.

if you then detach you mobile and publish and the publish doesn't end, you have a local (ie, on your computer) problem or an animate setting problem.  i can't determine what that problem is without downloading your fla and testing myself and i don't do that via the forums for free. but someone else might do that or you can hire me by sending an email via http://www.kglad.com.


I will update AIR SDK and maybe switch to Animate cc from Pro CS6.Is there another way publish admob ads without using ane ?