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

Everything is well in to edit mode but here as you say unreadable.I can't edit because edit button is gone.

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()

Main AS

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>