Voici la classe entière dans laquelle j'essaye de charger une bannière publicitaire (la méthode createAd () fait le travail)
public class HomeActivity extends Activity {
private HomeView homeView;
private ImageView playButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// playButton = (ImageView)findViewById(R.id.playButton);
// playButton.setImageBitmap(BitmapFactory.decodeResource(getResources(),
// R.drawable.play));
// setListener();
setContentView(R.layout.home_main);
createAd();
}
private void setListener (){
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
playButton.setImageBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.play2));
playGame();
}
});
}
private void createAd(){
setContentView(R.layout.home_main);
AdView adView = (AdView)findViewById(R.id.bottomAd);
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
adRequestBuilder.addTestDevice("FEACCF89D31180ABDD853C9C3DD2E871");
// .addTestDevice("1744314CD0C7B0619F94D44CE2E5093E");
adView.loadAd(adRequestBuilder.build());
}
public void playGame() {
SharedPreferences savedData = getApplicationContext()
.getSharedPreferences("lastScore", Context.MODE_PRIVATE);
int score = savedData.getInt("lastScore", Context.MODE_PRIVATE);
Intent intent = new Intent(HomeActivity.this, GamePlay.class);
intent.putExtra("lastScore", score);
startActivity(intent);
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Voici le xml de home_main
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/homeRelative"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".HomeActivity">
<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/bottomAd"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/admob_banner_id">
</com.google.Android.gms.ads.AdView>
</RelativeLayout>
Voici mon journal après la dernière course
01-01 16:00:32.235 26387-26387/com.rune.colorhunt D/OpenGLRenderer﹕ Enabling debug mode 0
01-01 16:00:32.275 652-796/? I/CrashAnrDetector﹕ onPackageUpdateFinished : com.rune.colorhunt
01-01 16:00:37.351 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DexOpt: --- BEGIN 'ads976472321.jar' (bootstrap=0) ---
01-01 16:00:37.361 26387-26387/com.rune.colorhunt V/WebViewChromium﹕ Binding Chromium to the main looper Looper (main, tid 1) {41d00b38}
01-01 16:00:37.361 26387-26387/com.rune.colorhunt I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
01-01 16:00:37.361 26387-26387/com.rune.colorhunt I/BrowserProcessMain﹕ Initializing chromium process, renderers=0
01-01 16:00:37.391 26387-26426/com.rune.colorhunt W/chromium﹕ [WARNING:proxy_service.cc(888)] PAC support disabled because there is no system implementation
01-01 16:00:37.421 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request.
01-01 16:00:37.441 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DexOpt: --- END 'ads976472321.jar' (success) ---
01-01 16:00:37.441 26387-26416/com.rune.colorhunt D/dalvikvm﹕ DEX prep '/data/data/com.rune.colorhunt/cache/ads976472321.jar': unzip in 0ms, rewrite 91ms
01-01 16:00:37.611 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 11
01-01 16:00:37.611 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 12
01-01 16:00:37.621 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 13
01-01 16:00:37.621 26387-26394/com.rune.colorhunt I/dalvikvm﹕ Total arena pages for JIT: 14
01-01 16:00:37.651 26387-26431/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2
01-01 16:00:37.691 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now.
01-01 16:00:37.691 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2
01-01 16:01:37.715 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request.
01-01 16:01:37.825 26387-26490/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2
01-01 16:01:37.845 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now.
01-01 16:01:37.845 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2
01-01 16:02:37.889 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request.
01-01 16:02:38.009 26387-26531/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2
01-01 16:02:38.039 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now.
01-01 16:02:38.039 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2
01-01 16:03:38.972 26387-26387/com.rune.colorhunt I/Ads﹕ Starting ad request.
01-01 16:03:39.062 26387-26783/com.rune.colorhunt W/Ads﹕ There was a problem getting an ad response. ErrorCode: 2
01-01 16:03:39.062 26387-26387/com.rune.colorhunt I/Ads﹕ Scheduling ad refresh 60000 milliseconds from now.
01-01 16:03:39.062 26387-26387/com.rune.colorhunt W/Ads﹕ Failed to load ad: 2
Si quelqu'un pouvait m'aider, ce serait génial. Je n'ai littéralement aucune idée de ce que pourrait être le problème. Peut-être que je manque quelque chose de très simple et juste besoin d'une autre paire d'yeux. Toute aide est appréciée, merci.
Vérifiez que votre appareil dispose d'une connexion Internet correcte. Sans connexion Internet, vous ne recevrez pas d'annonces.
Admob annonce ne sera pas chargée. L'erreur 2 apparaît si la date ou l'heure est incorrecte sur votre appareil, il suffit de définir la correction de la saisie automatique sur votre appareil.
L'erreur n ° 2 signifie ERROR_CODE_NETWORK_ERROR
. . Vérifiez votre connexion Internet et ne diffusez toujours pas d'annonces. Redémarrez simplement votre mobile et vérifiez ... que cela a fonctionné pour moi.
Un autre problème pourrait être une application adblocker comme suggéré dans ce message: https://stackoverflow.com/a/36010639/3596576 de @Durian.
Pour moi, c'était le problème.
Si vous utilisez un appareil réel, vérifiez également les autres applications, vous savez qu'elles contiennent des annonces, si les annonces sont affichées. Également vérifier individuellement sur le réseau mobile et sur le Wi-Fi.
Pour moi, cela ne s'affiche pas uniquement sur le réseau mobile et dans toutes les applications. Suppression des données des services Google Play aidez-moi, et les annonces recommencent à être diffusées. Jusqu'à ce que le GPS télécharge ses données. Donc, cela a fonctionné pendant environ une minute. :-RÉ
J'ai eu le même problème. La connexion Internet était OK et il n'y avait pas de bloqueur de publicité installé.
Le problème peut être lié à votre périphérique de test. Vérifiez si vous avez une autre application contenant Admob avec votre périphérique de test. Vous pouvez également vérifier avec un autre périphérique et une autre application contenant Admob.
Dans mon cas, je me suis rendu compte que mon appareil de test dispose d'une connexion Internet, mais ne diffuse aucune annonce Admob dans différentes applications. J'ai donc essayé de redémarrer mon appareil de test et cela a fonctionné.
J'ai eu le même problème de la publicité ne s'affiche pas sur l'écran du périphérique de test physique.
J'ai désactivé mon réseau wifi et commencé à utiliser les données mobiles 3g, puis mes annonces ont commencé à apparaître sur les appareils de test physiques.
J'ai aussi une différence de dépendances:
com.google.Android.gms:play-services-ads:9.2.0
au lieu de 11.6.2
Ce problème est dû au fait qu'une application envoie trop de demandes d'annonce à la fois, ce qui met le SDK dans un mauvais état. Le redémarrage des services de Google Play, qui peut être effectué efficacement en effaçant toutes les données, résout le problème pour moi. Le correctif du kit SDK pour ce problème sera inclus dans la prochaine version des services de Google Play. Une fois que votre appareil a pris connaissance de la mise à jour, vous n'avez plus besoin de mettre à jour votre application. c'est un problème connu de sdk
commencez par préciser le type d’ajout que vous souhaitez charger, annonce interstitielle ou bannière. si vous souhaitez charger une bannière publicitaire, créez une bannière ad_unit_id sur le site admob, puis utilisez AdView directement dans la vue de votre activité comme ci-dessous:
<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/xadView"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/admob_banner_ad_unit_id" />
et juste demander de charger une bannière publicitaire à partir de votre code comme ci-dessous: écrivez ce code dans votre activité dans oncreate après setcontentview
AdView mAdView = (AdView) findViewById(R.id.xadView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice(
AdRequest.DEVICE_ID_EMULATOR).build();
mAdView.loadAd(adRequest);
ET
si vous souhaitez charger des annonces interstiales, créez un ad_unit_id interstitiel sur le site admob, puis utilisez-le dans la méthode ci-dessous:
public void showFullScreenAd() {
try {
com.google.Android.gms.ads.InterstitialAd interstitial = new com.google.Android.gms.ads.InterstitialAd(context);
interstitial
.setAdUnitId(ADMOB_INTERSTITIAL_AD_UNIT_ID);
// Check the logcat output for your hashed device ID to get test ads
// on
// a physical device.
com.google.Android.gms.ads.AdRequest adRequest = new AdRequest.Builder()
.build();
// Load the interstitial ad.
interstitial.loadAd(adRequest);
interstitial
.setAdListener(new com.google.Android.gms.ads.AdListener() {
@Override
public void onAdLoaded() {
interstitial.show();
}
});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
REMARQUE: il est important que nous utilisions parfois l'identifiant d'unité de bannière publicitaire dans les annonces interstitielles ou l'identifiant de bloc d'annonce interstitielle dans les annonces de bannière; cette erreur se produit donc.
essayez de désactiver les données de base sur les réseaux mobiles comme étant désactivé dans les services google, cela fonctionne pour moi