Ajout pub dans une application

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 16 sept. 2014 à 12:04
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 - 18 sept. 2014 à 17:42
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 !
A voir également:

2 réponses

parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
17 sept. 2014 à 17:28
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 ?
1
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
Modifié par ProvencaleLeGaulois le 18/09/2014 à 17:43
Salut,
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 


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 :
 <LinearLayout
 android:id="@+id/mainLayout"> 
</LinearLayout>

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
0
Mais sinon, c'est quoi le message d'erreur?

As-tu essayer de débugger le programme en mettant des breakpoints?
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
16 sept. 2014 à 13:09
Au niveau du main et du mainLayour, ca me dit : "main cannot be resolved or is not a type", et pareil pour mainLayout. J'ai déjà essayé"import com.monpackage.R;", mais ca ne change rien...
0
Bha si je ne me trompe pas R est un fichier auto-généré, si tu es allé farfouillé dedans, ça peut faire des trucs crade comme ça.
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
16 sept. 2014 à 14:42
Nan je n'ai rien touché dans R, il est resté inchangé depuis le début...
0
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
16 sept. 2014 à 17:33
Tu as bien un fichier main.xml dans res/layout/ ?
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
16 sept. 2014 à 20:31
Ah non je n'ai pas de main.xml...
0