Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
Android Admob广告未在真实设备中显示,尽管它在模拟器上工作_Android_Admob - Fatal编程技术网

Android Admob广告未在真实设备中显示,尽管它在模拟器上工作

Android Admob广告未在真实设备中显示,尽管它在模拟器上工作,android,admob,Android,Admob,我遇到了Admob问题,它可以在模拟器和真实设备上使用test AppId和AdUnitId正常工作。 两台设备都显示了“干得好”的测试广告 在创建了我的AppId和AdUnitId之后,emulator将显示下一级广告并开始工作 但真正的设备没有显示任何东西。真实设备中没有adview栏 我的代码如下- build.gradle ModuleApp 依赖项{ … 实现'com.google.android.gms:play-services-ads:18.3.0'} AndroidManife

我遇到了Admob问题,它可以在模拟器和真实设备上使用test AppId和AdUnitId正常工作。 两台设备都显示了“干得好”的测试广告

在创建了我的AppId和AdUnitId之后,emulator将显示下一级广告并开始工作 但真正的设备没有显示任何东西。真实设备中没有adview栏

我的代码如下-

build.gradle ModuleApp

依赖项{ …
实现'com.google.android.gms:play-services-ads:18.3.0'}

AndroidManifest.xml

还有一个问题: 在developers.google.com入门信息中显示了添加MobileAds.initialize{…} 这是什么要求,因为即使没有添加代码,应用程序仍在工作


我在网上发现了一些类似的问题,但没有找到/理解正确的解决方案。

将听众添加到你的广告中,以获取更多信息,了解为什么无法加载广告

mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
    // Code to be executed when an ad finishes loading.
}

@Override
public void onAdFailedToLoad(int errorCode) {
    Log.d("mAdView", "onAdFailedToLoad. But why? "+errorCode)
    // Code to be executed when an ad request fails.
}

@Override
public void onAdOpened() {
    // Code to be executed when an ad opens an overlay that
    // covers the screen.
}

@Override
public void onAdClicked() {
    // Code to be executed when the user clicks on an ad.
}

@Override
public void onAdLeftApplication() {
    // Code to be executed when the user has left the app.
}

@Override
public void onAdClosed() {
    // Code to be executed when the user is about to return
    // to the app after tapping on an ad.
}
});
您应该在初始化中添加一些输出

MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
Log.d("MobileAds", "#onInitializationComplete");
}
});

1个月后,我的应用程序中只加载了2次广告。我还没有发布应用程序。所有请求和2次加载都显示在我的AdMobs仪表板中

所以现在我建议以下两个答案来回答我自己的问题 1) Google AdMobs没有可加载的横幅广告。 2) Google AdMobs没有在新应用上加载广告,它会等待来自多个已安装应用的多个请求来开始加载广告。这可能是为了避免任何误用

如果其他人也有同样的判断,那么一定要将这个答案提交给他们,因为每个人都会在编辑代码时浪费很多时间,尽管代码非常好


正如上面S.Gissel先生所建议的,我已经尝试了AdView Listeners,错误代码为3,即没有要加载的广告。

当您在admob中创建广告单元和应用程序时?很多时候,提供服务需要几个小时。我认为要让它在真实设备中工作,您需要将您的设备添加为测试设备。查看此以了解更多信息Hi VikaS:已经两天了,结果仍然一样。------Hi sinan:我之前试过测试设备代码,但它不起作用。另外,我正在使用Build>Generate创建apk。。。Android Studio中的工具,因此我认为它类似于最终发布版本类型,因此不需要添加测试设备Id,否则我将如何分发应用程序。
MobileAds.initialize(this, new OnInitializationCompleteListener() {
    @Override
    public void onInitializationComplete(InitializationStatus initializationStatus) {
    }
});

AdView mAdView = findViewById(R.id.adView);

AdRequest adRequest = new AdRequest.Builder()
        .build();
mAdView.loadAd(adRequest);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
    // Code to be executed when an ad finishes loading.
}

@Override
public void onAdFailedToLoad(int errorCode) {
    Log.d("mAdView", "onAdFailedToLoad. But why? "+errorCode)
    // Code to be executed when an ad request fails.
}

@Override
public void onAdOpened() {
    // Code to be executed when an ad opens an overlay that
    // covers the screen.
}

@Override
public void onAdClicked() {
    // Code to be executed when the user clicks on an ad.
}

@Override
public void onAdLeftApplication() {
    // Code to be executed when the user has left the app.
}

@Override
public void onAdClosed() {
    // Code to be executed when the user is about to return
    // to the app after tapping on an ad.
}
});
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
Log.d("MobileAds", "#onInitializationComplete");
}
});