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   -
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 !

2 réponses

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention   6
 
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
DDD
 
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   Statut Membre Dernière intervention   6
 
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
DDD
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention   6
 
Tu as bien un fichier main.xml dans res/layout/ ?
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Ah non je n'ai pas de main.xml...
0