我正在尝试在游戏中制作Google广告。我使用Pozirk Ane admob。我在Actionscript 3设置中添加了库文件和ane。
当我测试Debug时,出现此错误。

ANE链接

https://github.com/pozirk/ANEAdMob

我不知道错误在哪里。

尝试使用URL C:/APK/Reklam/Testreklam-app.xml启动并连接到Player

    [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文件代码

<?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>

最佳答案

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

(2)关于此错误:


  ArgumentError:Error #3500:“扩展上下文没有名称为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);
}

10-06 16:13