Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 间隙性Ad';s监听器';s onAdLoaded()赢得';跑不动_Java_Android_Admob_Interstitial - Fatal编程技术网

Java 间隙性Ad';s监听器';s onAdLoaded()赢得';跑不动

Java 间隙性Ad';s监听器';s onAdLoaded()赢得';跑不动,java,android,admob,interstitial,Java,Android,Admob,Interstitial,我尝试使用调试器,第一行运行了,但第二行根本没有运行。以下是我在onCreate方法中初始化ad的方式: interstitial.setAdListener(new AdListener(){ public void onAdLoaded(){ display(); } }); 间质性和间质性在类内的方法外部。这个奉承被故意掩盖了 日志: interstitial = new InterstitialAd(this); interstitial.setAdUn

我尝试使用调试器,第一行运行了,但第二行根本没有运行。以下是我在onCreate方法中初始化ad的方式:

interstitial.setAdListener(new AdListener(){
    public void onAdLoaded(){
        display();
    }
});
间质性和间质性在类内的方法外部。这个奉承被故意掩盖了

日志:

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("******************************");
AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
05-17 20:10:49.802:E/GooglePlayServicesUtil(17509):未找到googleplayservices资源。检查您的项目配置以确保包含资源。
05-17 20:10:49.807:E/GooglePlayServicesUtil(17509):未找到Google Play服务资源。检查您的项目配置以确保包含资源。
05-17 20:10:51.597:I/GATE(17509):开发行动完成
05-17 20:10:51.597:I/Ads(17509):计划从现在起60000毫秒的ad刷新。
05-17 20:10:51.602:I/Ads(17509):Ad已完成加载。
05-17 20:10:51.632:D/TileManager(17509):启动TG#0,0x5b3446f0
05-17 20:10:51.632:D/TileManager(17509):来自框架的新EGLContext:593202c0
05-17 20:10:51.632:D/GLWebViewState(17509):Reinit着色器
05-17 20:10:51.632:D/GLWebViewState(17509):重新输入传输队列
05-17 20:10:56.262:D/AblistView(17509):获取运动识别管理器
05-17 20:11:31.987:I/Ads(17509):Ad不可见。不刷新广告。
05-17 20:11:31.992:I/Ads(17509):计划从现在起60000毫秒后的ad刷新。

希望您在AndroidManifest.xml中添加了以下内容

互联网许可

05-17 20:10:49.802: E/GooglePlayServicesUtil(17509): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
05-17 20:10:49.807: E/GooglePlayServicesUtil(17509): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
05-17 20:10:51.597: I/GATE(17509): <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
05-17 20:10:51.597: I/Ads(17509): Scheduling ad refresh 60000 milliseconds from now.
05-17 20:10:51.602: I/Ads(17509): Ad finished loading.
05-17 20:10:51.632: D/TilesManager(17509): Starting TG #0, 0x5b3446f0
05-17 20:10:51.632: D/TilesManager(17509): new EGLContext from framework: 593202c0 
05-17 20:10:51.632: D/GLWebViewState(17509): Reinit shader
05-17 20:10:51.632: D/GLWebViewState(17509): Reinit transferQueue
05-17 20:10:56.262: D/AbsListView(17509): Get MotionRecognitionManager
05-17 20:11:31.987: I/Ads(17509): Ad is not visible. Not refreshing ad.
05-17 20:11:31.992: I/Ads(17509): Scheduling ad refresh 60000 milliseconds from now.

是否缺少onAdLoaded()方法之前的@override

不要从#onAdLoaded调用display()。这将导致用户体验非常差。而是从应用程序中的自然断点调用display(如果已加载广告)

你的日志中的这些行也表明你也有横幅广告

    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId(getResources().getString(R.string.admob_inst));
    // interstitial.setAdUnitId("01010101");
    // Create ad request.
    AdRequest adRequest = new AdRequest.Builder().build();
    // Begin loading your interstitial.
    interstitial.loadAd(adRequest);
    interstitial.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            // TODO Auto-generated method stub
            super.onAdLoaded();
            interstitial.show();
        }
    });

如果不是这样的话,那么你已经错误地配置了你的adUnit,因为你得到的是自动刷新,而这种情况不会发生在间隙。每次都需要显式加载一个间隙。

使用以下代码在AdLoaded()上显示ad的侦听器。我用了同样的。它为我工作

05-17 20:11:31.987: I/Ads(17509): Ad is not visible. Not refreshing ad.
05-17 20:11:31.992: I/Ads(17509): Scheduling ad refresh 60000 milliseconds from now.
外部oncreate函数使用以下代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("***********");

AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
displayInterstitial();
}
});
}

这行不通。顺便说一句,广告部门的身份证被故意掩盖了@MAC@zbz.lvlv:更新的答案。我在AndroidManifest中已经有了。我有另一个横幅广告在主要活动中的工作。此间隙性ad不在主要活动中。是否检查日志?确保您已经添加了这一行
interstitual.show()我刚检查过。我发现一些可疑的东西。我会更新我的问题。我有一行中间的。show()@MACyes。即使我加入了(at)覆盖,仍然没有结果@EsssesAddthis并查看是否调用了(at)Override public void on adfailedtoload(int errorCode)。我假设您正在display()方法中调用interstitual.show()。如果没有,则调用interstitual.show()。或者,检查您是否正在使用最新的google-play-services\u libI无法在Android SDK工具上更新。这是否意味着我有最新版本的谷歌游戏库@是的,那么你有最新的。请参阅下面MAC的回答,您需要检查清单文件中的权限和元数据。您能进一步解释吗?我不明白。那我该怎么办@William哪一位您不明白?如果Interstitual.isLoaded()是由名为OnAndLoaded的侦听器方法调用的,为什么要检查它?
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId(getResources().getString(R.string.admob_inst));
    // interstitial.setAdUnitId("01010101");
    // Create ad request.
    AdRequest adRequest = new AdRequest.Builder().build();
    // Begin loading your interstitial.
    interstitial.loadAd(adRequest);
    interstitial.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            // TODO Auto-generated method stub
            super.onAdLoaded();
            interstitial.show();
        }
    });
05-17 20:11:31.987: I/Ads(17509): Ad is not visible. Not refreshing ad.
05-17 20:11:31.992: I/Ads(17509): Scheduling ad refresh 60000 milliseconds from now.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("***********");

AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
displayInterstitial();
}
});
}
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}