Sto provando a impostare adUnitId a livello di programmazione per gli annunci dai nuovi servizi di Google Play (vecchio AdMob).Come specificare adUnitId in modo programmatico per AdMob?
ho questo in XML (usato in un <include>
):
<com.google.android.gms.ads.AdView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"/>
e questo a onCreate():
AdView mAdview = (AdView)findViewById(R.id.adView);
mAdview.setAdUnitId(((App)getApplication()).getAdmobKey());
mAdview.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
findViewById(R.id.adView).setVisibility(View.VISIBLE);
}
});
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mAdview.loadAd(adRequest);
E ottengo:
La dimensione annuncio e l'ID dell'unità pubblicitaria deve essere impostato prima di chiamare loadAd.
Quindi la seconda opzione era di rendere l'annuncio programmaticamente.
Il nuovo XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/adView"
/>
Il nuovo codice:
AdView mAdview = new AdView(this);
...
((LinearLayout)findViewById(R.id.adView)).addView(mAdview);
mAdview.loadAd(adRequest);
Ma ottengo lo stesso errore.
Ho provato anche ad ereditare da com.google.android.gms.ads.AdView per creare una vista personalizzata, ma è definitiva.
Qualche suggerimento?
Guarda qui http://stackoverflow.com/questions/15953075/how-to-create-an-admob- banner-programatically – Loures
Penso che la risposta sia vecchia. Non ho il costruttore AdView (, , ) –
Ho avuto lo stesso problema, stessa eccezione. Funziona solo quando adUnitId è in xml. –