2017-06-16 12 views
0

Ich bin vor ein paar Probleme hinzufügen, wenn ich versuche, die Interstitial-Anzeige hinzuzufügen.Fehler beim Versuch, die AdMob-Interstitial ad

Es scheint, dass das Android Studio meinen Code ohne Fehler akzeptiert, aber wenn ich meine App öffne - gibt es nur eine leere Seite und das Werbebanner (das mit dem FireBase Tool installiert wurde). Wenn ich den Code lösche, wird alles wieder normal. Ich würde es sehr schätzen, wenn Sie mir helfen könnten.

Code:

package test.com.myapplication; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.InterstitialAd; 

public class MainActivity extends AppCompatActivity { 
InterstitialAd mInterstitialAd; 
private InterstitialAd interstitial; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    AdRequest adRequest=new AdRequest.Builder().build(); 
    //Prepare the interstitial Ad 
    interstitial=new InterstitialAd(MainActivity.this); 
    //Insert the add unit id 
    interstitial.setAdUnitId(getString(R.string.admob_interstitial_id)); 
    interstitial.loadAd(adRequest); 
    //prepare an interstitial ad listeners 
    interstitial.setAdListener(new AdListener() { 


     @Override 
     public void onAdClosed() { 
      //Call displayfunction 
      displayInterstitial(); 
     } 
    }); 

} 
public void displayInterstitial(){ 
    //if ads are loaded, show interstitial ads 
    if (interstitial.isLoaded()) 
    { 
     interstitial.show(); 
    } 
} 

P. S. Sowohl die Zeichenfolge als auch die Internet-Berechtigung werden hinzugefügt.

+0

Ihre Protokolle überprüfen und in Frage zeigen –

+0

Ihre XML-Datei, wo Ihr Banner Ansicht hinzugefügt hochladen? und stellen Sie sicher, dass Sie Aktivitätseintrag in Manifest-Datei für Interstitial-Anzeigen haben – Aryan

Antwort

0

Es sieht aus wie Sie versuchen, Ihre interstitielle in Reaktion auf das onAdClosed Ereignis auf der interstitiellen selbst anzuzeigen. Das Ereignis wird ausgelöst, wenn der Benutzer schließt die Anzeige, die die Art und Weise bedeutet, dass Ihr Code jetzt ist, es wird nie eine Chance, auszuführen (um für eine Interstitial-Anzeige erhalten geschlossen werden kann, muss es zuerst angezeigt, und Ihre Code hat Dinge den umgekehrten Weg).

Versuchen Sie stattdessen, Ihre displayInterstitial Methode als Reaktion auf ein UI-Ereignis aufzurufen, z. B. beim Drücken einer Taste oder beim Übergang zwischen Aktivitäten oder etwas Ähnlichem.

Auch empfehle ich setListenervorloadAd aufrufen. Einige der AdListener-Ereignisse beziehen sich auf das Laden. Daher ist es am besten, sie vor dem Aufruf zum Laden einer Anzeige einzurichten.

+0

Ich habe ein bisschen mein Projekt geändert und einen Neuanfang gemacht. Nach dem Import meines vollständigen Projekts habe ich die "Google AdMob Ads Activity" hinzugefügt und den gesamten Code in meine Hauptaktivität kopiert. Aber jetzt gibt es ein anderes Problem: Wenn ich lege: // Aufblasen des Menüs; Dies fügt Elemente zur Aktionsleiste hinzu, wenn sie vorhanden ist. getMenuInflater(). Aufblasen (Menümenü, Menü); Rückkehr wahr; Ich erhalte eine Fehlermeldung auf dem „Menü“ - es sagt mir, dass der Ausdruck erwartet wird. Was soll ich machen? –

+0

Wenn Sie Code aus der Anzeigenaktivität, die von Android Studio generiert wird, in Ihre Aktivität verschieben, werden möglicherweise einige Ressourcen erwartet, die Sie nicht ebenfalls einbezogen haben. Wenn Sie kein Menü haben möchten, können Sie diesen Code immer entfernen. Versuchen Sie andernfalls, eine neue Frage mit dem Code hier zu veröffentlichen, und jemand wird das Problem möglicherweise erkennen. :) – RedBrogdon

Verwandte Themen