有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java AIR admob问题#3500:扩展上下文没有名为CacheInterstitual的方法

我想在我的游戏中做谷歌广告。我使用Pozirk和admob。我在ActionScript3设置中添加了库文件和电子邮件。 当我测试调试时,我得到了这个错误

电子链接

https://github.com/pozirk/ANEAdMob

我想不出错误在哪里

正在尝试使用URL C:/APK/Reklam/Testreklam应用程序启动并连接到播放器。xml

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

我的主菜。作为代码

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.");
        }
}







    }

}

应用程序XML文件代码

<?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>
  <安卓>
        <manifestAdditions>
      <![CDATA[<manifest><uses-permission 安卓:name="安卓.permission.INTERNET"/><uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE"/><application>
<meta-data 安卓:name="com.google.安卓.gms.version" 安卓:value="4323000" /> <!-- should be 安卓:value="@integer/google_play_services_version" --> <activity 安卓:name="com.google.安卓.gms.ads.AdActivity" 安卓:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
</application></manifest>]]>
    </manifestAdditions>
    </安卓>
  <versionLabel> </versionLabel>
  <extensions>
    <extensionID>com.pozirk.ads.AdMob</extensionID>
  </extensions>
</application>

共 (1) 个答案

  1. # 1 楼答案

    (1)在执行_inters.init();
    之前,尝试添加_inters自己的事件监听器(这样,当init()发生时,监听器将准备就绪)

    (2)关于这个错误:

    ArgumentError: Error #3500:
    "The extension context does not have a method with the name cacheInterstitial."

    试着在实际设备上测试你的代码,比如Android。它在桌面调试器上不起作用
    参见line 41 of AdMob.as(函数init():void)。。。你会发现if(err.errorID == 3500)

    catch(err:Error)
    {
        var e:AdEvent = null;
        if(err.errorID == 3500)
            e = new AdEvent(AdEvent.INIT_FAIL, "Isn't it clear, that ANDROID Extension will NOT work on PC/Mac???");
        else
            e = new AdEvent(AdEvent.INIT_FAIL, "ANE was not properly added to your project.");
        this.dispatchEvent(e);
    }