Ajout pub dans une application
parousky
Messages postés
325
Date d'inscription
Statut
Membre
Dernière intervention
-
ProvencaleLeGaulois Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
ProvencaleLeGaulois Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'aimerai ajouter une bannière publicitaire dans mon application Android sur eclipse. Alors j'ai suivi les explications sur le site d'Admob. Mais quoi que je fasse j'ai toujours des erreurs dans mon script, et j'ai beau chercher, je ne trouve pas de solution.
Alors voilà mon code (un peu lourd du coup dsl) :
package com.User44002.mxnbb;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import com.google.android.gms.ads.*;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.android.gms.ads.AdView;
// A view that loads TouchDevelop in a WebView
public class TouchDevelopView extends Activity {
private AdView adView;
@Override
@SuppressLint("SetJavaScriptEnabled")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Créez l'objet adView.
adView = new AdView(this);
adView.setAdUnitId(MY_AD_UNIT_ID);
adView.setAdSize(AdSize.BANNER);
// Recherchez l'entité LinearLayout en supposant qu'elle est associée à
// l'attribut android:id="@+id/mainLayout".
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
// Ajoutez-y l'objet adView.
layout.addView(adView);
// Initiez une demande générique.
AdRequest adRequest = new AdRequest.Builder().build();
// Chargez l'objet adView avec la demande d'annonce.
adView.loadAd(adRequest);
// don't show title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_touch_develop_view);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new TouchDevelopWebViewClient());
myWebView.setWebChromeClient(new TouchDevelopWebChromeClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCachePath("cache");
webSettings.setAppCacheEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setGeolocationDatabasePath("geo");
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setSupportZoom(false);
myWebView.addJavascriptInterface(new JsHost(this.getPackageName()), "touchDevelopHost");
myWebView.loadUrl("file:///android_asset/default.html");
AppReviewer.showAskReview(this);
}
// replace this with WAB
class JsHost {
private String packageName;
public JsHost(final String packageName) {
this.packageName = packageName;
}
@JavascriptInterface
public String toString() { return "touchDevelopHost"; }
@JavascriptInterface
public String storeid() {
return this.packageName;
}
}
class TouchDevelopWebChromeClient extends WebChromeClient {
}
class TouchDevelopWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri = Uri.parse(url);
if (uri.isAbsolute()) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
}
@Override
public void onPause() {
adView.pause();
super.onPause();
}
@Override
public void onResume() {
super.onResume();
adView.resume();
}
@Override
public void onDestroy() {
adView.destroy();
super.onDestroy();
}
}
Voyez-vous une erreur évidente ? Ou bien est-ce encore une histoire de librairie mal importée ou un truc dans le genre ?
Merci d'avance !
Alors voilà mon code (un peu lourd du coup dsl) :
package com.User44002.mxnbb;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import com.google.android.gms.ads.*;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.android.gms.ads.AdView;
// A view that loads TouchDevelop in a WebView
public class TouchDevelopView extends Activity {
private AdView adView;
@Override
@SuppressLint("SetJavaScriptEnabled")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Créez l'objet adView.
adView = new AdView(this);
adView.setAdUnitId(MY_AD_UNIT_ID);
adView.setAdSize(AdSize.BANNER);
// Recherchez l'entité LinearLayout en supposant qu'elle est associée à
// l'attribut android:id="@+id/mainLayout".
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
// Ajoutez-y l'objet adView.
layout.addView(adView);
// Initiez une demande générique.
AdRequest adRequest = new AdRequest.Builder().build();
// Chargez l'objet adView avec la demande d'annonce.
adView.loadAd(adRequest);
// don't show title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_touch_develop_view);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new TouchDevelopWebViewClient());
myWebView.setWebChromeClient(new TouchDevelopWebChromeClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCachePath("cache");
webSettings.setAppCacheEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setGeolocationDatabasePath("geo");
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setSupportZoom(false);
myWebView.addJavascriptInterface(new JsHost(this.getPackageName()), "touchDevelopHost");
myWebView.loadUrl("file:///android_asset/default.html");
AppReviewer.showAskReview(this);
}
// replace this with WAB
class JsHost {
private String packageName;
public JsHost(final String packageName) {
this.packageName = packageName;
}
@JavascriptInterface
public String toString() { return "touchDevelopHost"; }
@JavascriptInterface
public String storeid() {
return this.packageName;
}
}
class TouchDevelopWebChromeClient extends WebChromeClient {
}
class TouchDevelopWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri = Uri.parse(url);
if (uri.isAbsolute()) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
}
@Override
public void onPause() {
adView.pause();
super.onPause();
}
@Override
public void onResume() {
super.onResume();
adView.resume();
}
@Override
public void onDestroy() {
adView.destroy();
super.onDestroy();
}
}
Voyez-vous une erreur évidente ? Ou bien est-ce encore une histoire de librairie mal importée ou un truc dans le genre ?
Merci d'avance !
A voir également:
- Mettre de la pub sur son application
- Supprimer pub youtube - Accueil - Streaming
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application sur windows - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Supprimer la pub - Guide
2 réponses
Alors je viens de créer un fichier main.xml, et je n'ai rien rajouté dedans, tout ce qu'il y a, c'est ça :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
Donc je n'ai plus d'erreur pour main, par contre pour mainLayout, j'ai toujours : "mainLayout cannot be resolved or is not a type".
Alors je suis tenté de créer un fichier xml mainLayout, mais est-ce bien ce qu'il faut faire ?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
Donc je n'ai plus d'erreur pour main, par contre pour mainLayout, j'ai toujours : "mainLayout cannot be resolved or is not a type".
Alors je suis tenté de créer un fichier xml mainLayout, mais est-ce bien ce qu'il faut faire ?
Cela veut dire que tu cherches dans le fichier main.xml une balise <LinearLayout> dont l'id est mainLayout.
ça donne un truc du genre :
Qu'il te faut écrire dans mail.xml
Avec ça ton code devrait ne plus comporter d'erreur, mais pour comprendre comment construire ton layout il te faut regarder la doc ou des exemples vu que tu as l'air de débuter :
https://developer.android.com/guide/topics/ui/layout/linear.html
Bon courage