C Calvero Member Licensed User May 12, 2016 #1 Bonjour, J'ai suivi les étapes de différents tuto présent ici ainsi que des tutos vidéos sur Youtube : https://www.b4x.com/android/forum/threads/admob-tutorial-add-ads-to-your-application.7300/ pour l'intégration d'AdMob dans mon appli, mais il y a un point où je bloque : Code: ** Service (starter) Create ** ** Service (starter) Start ** ** Activity (main) Create, isFirst = true ** java.lang.NoClassDefFoundError: android.support.v4.util.SimpleArrayMap at com.google.android.gms.ads.internal.zzs.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzs.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzb.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzc.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzf.<init>(Unknown Source) at com.google.android.gms.ads.internal.ClientApi.createBannerAdManager(Unknown Source) at com.google.android.gms.ads.internal.client.zzl.createBannerAdManager(Unknown Source) at com.google.android.gms.ads.internal.client.zze.zza(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zzdh(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zzdg(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zza(Unknown Source) at com.google.android.gms.ads.BaseAdView.loadAd(Unknown Source) at com.google.android.gms.ads.AdView.loadAd(Unknown Source) at anywheresoftware.b4a.admobwrapper.AdViewWrapper.LoadAd(AdViewWrapper.java:118) at b4a.example.main._activity_create(main.java:456) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:702) at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:339) at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:246) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134) at b4a.example.main.afterFirstLayout(main.java:102) at b4a.example.main.access$000(main.java:17) at b4a.example.main$WaitForLayout.run(main.java:80) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) ** Activity (main) Resume ** ** Activity (main) Pause, UserClosed = true ** ** Service (starter) Destroy ** Alors j'ai déjà vu des gens qui avait le même problème que moi; voici la réponse qu'il a eu : This class is included in the latest version of android-support-v4.jar. Download it from Android SDK Manager and copy it to the additional libraries folder. You need to add this line to the project: Code: #AdditionalJar: android-support-v4 Sauf que pour moi cette solution n'a pas marché et mon problème est toujours le même. Quelqu'un a-t-il une solution ? Merci d'avance de vos réponses.
Bonjour, J'ai suivi les étapes de différents tuto présent ici ainsi que des tutos vidéos sur Youtube : https://www.b4x.com/android/forum/threads/admob-tutorial-add-ads-to-your-application.7300/ pour l'intégration d'AdMob dans mon appli, mais il y a un point où je bloque : Code: ** Service (starter) Create ** ** Service (starter) Start ** ** Activity (main) Create, isFirst = true ** java.lang.NoClassDefFoundError: android.support.v4.util.SimpleArrayMap at com.google.android.gms.ads.internal.zzs.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzs.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzb.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzc.<init>(Unknown Source) at com.google.android.gms.ads.internal.zzf.<init>(Unknown Source) at com.google.android.gms.ads.internal.ClientApi.createBannerAdManager(Unknown Source) at com.google.android.gms.ads.internal.client.zzl.createBannerAdManager(Unknown Source) at com.google.android.gms.ads.internal.client.zze.zza(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zzdh(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zzdg(Unknown Source) at com.google.android.gms.ads.internal.client.zzab.zza(Unknown Source) at com.google.android.gms.ads.BaseAdView.loadAd(Unknown Source) at com.google.android.gms.ads.AdView.loadAd(Unknown Source) at anywheresoftware.b4a.admobwrapper.AdViewWrapper.LoadAd(AdViewWrapper.java:118) at b4a.example.main._activity_create(main.java:456) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:702) at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:339) at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:246) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134) at b4a.example.main.afterFirstLayout(main.java:102) at b4a.example.main.access$000(main.java:17) at b4a.example.main$WaitForLayout.run(main.java:80) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) ** Activity (main) Resume ** ** Activity (main) Pause, UserClosed = true ** ** Service (starter) Destroy ** Alors j'ai déjà vu des gens qui avait le même problème que moi; voici la réponse qu'il a eu : This class is included in the latest version of android-support-v4.jar. Download it from Android SDK Manager and copy it to the additional libraries folder. You need to add this line to the project: Code: #AdditionalJar: android-support-v4 Sauf que pour moi cette solution n'a pas marché et mon problème est toujours le même. Quelqu'un a-t-il une solution ? Merci d'avance de vos réponses.
klaus Expert Licensed User Longtime User May 12, 2016 #2 This class is included in the latest version of android-support-v4.jar. Download it from Android SDK Manager and copy it to the additional libraries folder. Click to expand... Est-ce que tu as copié le fichier android-support-v4.jar du AndroidSDK dans le répertoire des Additional Libarries ?
This class is included in the latest version of android-support-v4.jar. Download it from Android SDK Manager and copy it to the additional libraries folder. Click to expand... Est-ce que tu as copié le fichier android-support-v4.jar du AndroidSDK dans le répertoire des Additional Libarries ?
C Calvero Member Licensed User May 12, 2016 #3 Oui si le répertoire dont tu parles est bien le suivant : C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries
Oui si le répertoire dont tu parles est bien le suivant : C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries
klaus Expert Licensed User Longtime User May 12, 2016 #4 Il est déconseillé de sauver des libraries additionnelles dans C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries. Il est conseillé de définir un autre répertoire pour les libraries additionnelles comme par exemple: C:\B4A\AdditionalLibraries. Dans l'éditeur de B4A (IDE) dans le meunu Tools cliques sur Configure Paths. Dans la fenêtre ci dessous entres le nom du répertoire. Si tu sauves des librairies additionnelles dans C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries, lors d'une mise à jour de B4A dans le même répertoire les libraires additionnelles seront supprimées. Tu peux également définir un répertoire pour des modules partagées Shared Modules. Depuis quelle version de Android\Platforms\android-xx as tu copié le fichier android-support-v4.jar ? La version doit être 13 ou plus élevée.
Il est déconseillé de sauver des libraries additionnelles dans C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries. Il est conseillé de définir un autre répertoire pour les libraries additionnelles comme par exemple: C:\B4A\AdditionalLibraries. Dans l'éditeur de B4A (IDE) dans le meunu Tools cliques sur Configure Paths. Dans la fenêtre ci dessous entres le nom du répertoire. Si tu sauves des librairies additionnelles dans C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries, lors d'une mise à jour de B4A dans le même répertoire les libraires additionnelles seront supprimées. Tu peux également définir un répertoire pour des modules partagées Shared Modules. Depuis quelle version de Android\Platforms\android-xx as tu copié le fichier android-support-v4.jar ? La version doit être 13 ou plus élevée.
C Calvero Member Licensed User May 12, 2016 #5 Alors j'ai appliqué ce que tu m'as dit concernant le répertoire des librairies additionnelles. C'est cette infos que tu veux ? C:\Users\Calvero\AppData\Local\Android\android-sdk\platforms\android-23\android.jar Du coup j'ai mis mon android-support-v4.jar dans C:\B4A\AdditionalLibraries. Alors pour tout avouer je ne maitrise pas et ne comprend pas le sens exact de ce que j'ai en faisant tout ça, du coup je me contente d'appliquer pas à pas les procédures que je trouve et là en l’occurrence ce que tu me dis. Aide dont je te remercie d'ailleurs.
Alors j'ai appliqué ce que tu m'as dit concernant le répertoire des librairies additionnelles. C'est cette infos que tu veux ? C:\Users\Calvero\AppData\Local\Android\android-sdk\platforms\android-23\android.jar Du coup j'ai mis mon android-support-v4.jar dans C:\B4A\AdditionalLibraries. Alors pour tout avouer je ne maitrise pas et ne comprend pas le sens exact de ce que j'ai en faisant tout ça, du coup je me contente d'appliquer pas à pas les procédures que je trouve et là en l’occurrence ce que tu me dis. Aide dont je te remercie d'ailleurs.
klaus Expert Licensed User Longtime User May 12, 2016 #6 Est-ce que ça fonctionne maintenant ? Qu'est-ce que tu ne comprends pas?
C Calvero Member Licensed User May 12, 2016 #7 Non toujours pas j'ai toujours la même erreur... Ben en fait je ne comprends pas bien l'utilité de ces librairies additionnelles ou quoi, mais c'est pas grave . Ne te tracasse pas pour ça et ne perds du temps à m'expliquer mon but premier est surtout que cela fonctionne, d'où mon recours à ce forum pour le reste j'irais me former sur internet comme je l'ai fais jusqu'à maintenant. J'aimerais passer à la publication de mon application et bloquer si près du but, c'est crispant... Il y a certainement une chose que j'ai mal faite mais je ne sais pas laquelle...
Non toujours pas j'ai toujours la même erreur... Ben en fait je ne comprends pas bien l'utilité de ces librairies additionnelles ou quoi, mais c'est pas grave . Ne te tracasse pas pour ça et ne perds du temps à m'expliquer mon but premier est surtout que cela fonctionne, d'où mon recours à ce forum pour le reste j'irais me former sur internet comme je l'ai fais jusqu'à maintenant. J'aimerais passer à la publication de mon application et bloquer si près du but, c'est crispant... Il y a certainement une chose que j'ai mal faite mais je ne sais pas laquelle...
klaus Expert Licensed User Longtime User May 12, 2016 #8 Je n'ai jamais utilisé AdMob. Si tu as suivi à la lettre la marche à suvre ça devrait fonctionner. D'après le message d'erreur il semble que B4A ne trouve pas une classe. Es-tu sûr d'avoir copié une version récente de android-support-v4.jar dans C:\B4A\AdditionalLibraries ? Le fichier se trouve dans ...Android\extras\android\support\v4.
Je n'ai jamais utilisé AdMob. Si tu as suivi à la lettre la marche à suvre ça devrait fonctionner. D'après le message d'erreur il semble que B4A ne trouve pas une classe. Es-tu sûr d'avoir copié une version récente de android-support-v4.jar dans C:\B4A\AdditionalLibraries ? Le fichier se trouve dans ...Android\extras\android\support\v4.
C Calvero Member Licensed User May 12, 2016 #9 J'ai été rechercher le fichier dans le répertoire que tu m'as indiqué, j'ai remplacé celui que j'avais mis mais toujours pareil. Y a-t-il dans B4A une option à cocher ? ou un bout de code que j'aurais pu omettre ? Ci-dessus un aperçu de ce que j'ai modifié dans le code : Code: #Region Project Attributes [...] #AdditionalRes: C:\Users\Calvero\AppData\Local\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms #AdditionalJar: android-support-v4 [...] #End Region Code: Sub Globals Dim AdView1 As AdView [...] End Sub Code: Sub Activity_Create(FirstTime As Boolean) AdView1.Initialize("Ad", "ca-app-pub-1535076440620438/3475637909") Activity.AddView(AdView1, 0dip, 0dip, 320dip, 50dip)' AdView1.LoadAd 'loads an adcdsz AdView1.LoadAd [...] End Sub Les librairies que j'ai cochées et SDK que j'ai installés : A la rigueur si tu as une autre régies publicitaire à me conseiller je ne suis pas contre, j'ai pris celle là suite à ce que j'ai lu sur internet mais ne suis pas fermés à d'autres.
J'ai été rechercher le fichier dans le répertoire que tu m'as indiqué, j'ai remplacé celui que j'avais mis mais toujours pareil. Y a-t-il dans B4A une option à cocher ? ou un bout de code que j'aurais pu omettre ? Ci-dessus un aperçu de ce que j'ai modifié dans le code : Code: #Region Project Attributes [...] #AdditionalRes: C:\Users\Calvero\AppData\Local\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms #AdditionalJar: android-support-v4 [...] #End Region Code: Sub Globals Dim AdView1 As AdView [...] End Sub Code: Sub Activity_Create(FirstTime As Boolean) AdView1.Initialize("Ad", "ca-app-pub-1535076440620438/3475637909") Activity.AddView(AdView1, 0dip, 0dip, 320dip, 50dip)' AdView1.LoadAd 'loads an adcdsz AdView1.LoadAd [...] End Sub Les librairies que j'ai cochées et SDK que j'ai installés : A la rigueur si tu as une autre régies publicitaire à me conseiller je ne suis pas contre, j'ai pris celle là suite à ce que j'ai lu sur internet mais ne suis pas fermés à d'autres.
klaus Expert Licensed User Longtime User May 12, 2016 #10 Il me semble qu'il y a une incohérence dans tes emplacements: Dans Path Configuration tu as pour Android: C:Users\Damocles\AppData\Local\Android\android-sdk\... Et dans #AdditionalRes: C:\Users\Calvero\AppData\Local\Android\android-sdk\... Les deux déclarations ne pointent pas sur le même répertoire. Je ne sais pas si ça résoudra le problème.
Il me semble qu'il y a une incohérence dans tes emplacements: Dans Path Configuration tu as pour Android: C:Users\Damocles\AppData\Local\Android\android-sdk\... Et dans #AdditionalRes: C:\Users\Calvero\AppData\Local\Android\android-sdk\... Les deux déclarations ne pointent pas sur le même répertoire. Je ne sais pas si ça résoudra le problème.
C Calvero Member Licensed User May 12, 2016 #11 Oui non en fait c'est un problème de capture je me suis raté, mais effectivement c'est bien Damocles des deux côtés c'est le même dossier utilisateur...
Oui non en fait c'est un problème de capture je me suis raté, mais effectivement c'est bien Damocles des deux côtés c'est le même dossier utilisateur...
klaus Expert Licensed User Longtime User May 12, 2016 #12 Désolé mais je ne vois pas où est le problème. Essaies de poser la question dans le forum anglais. Il y a sûrement des utilisateurs avec plus d'expérience dans ce domaine.
Désolé mais je ne vois pas où est le problème. Essaies de poser la question dans le forum anglais. Il y a sûrement des utilisateurs avec plus d'expérience dans ce domaine.
C Calvero Member Licensed User May 12, 2016 #13 Y a pas de mal tu as le mérites d'avoir voulu m'aider, merci beaucoup ! Je vais essayer de poster en anglais même si mon anglais est foireux ...
Y a pas de mal tu as le mérites d'avoir voulu m'aider, merci beaucoup ! Je vais essayer de poster en anglais même si mon anglais est foireux ...
klaus Expert Licensed User Longtime User May 12, 2016 #14 GoogleTranslate est ton ami. Je l'utilise régulièrement pour comprendre des questions en italien ou espagnol. Les traductions en anglais sont asssez bonnes pour le français c'est moins bon.
GoogleTranslate est ton ami. Je l'utilise régulièrement pour comprendre des questions en italien ou espagnol. Les traductions en anglais sont asssez bonnes pour le français c'est moins bon.
C Calvero Member Licensed User May 12, 2016 #15 Ah j'ai une infos de plus je sais pas si ça peu te mettre sur la piste, mais avec l'émulateur j'ai l'erreur par contre avec B4A Bridge sur mon smartphone je n'ai pas l'erreur et l'application fonctionne. Bon le bandeau de pub ne s'affiche pas mais ça c'est un autre problème que je vais tenter de résoudre seul avant de te solliciter, mais déjà ça donne un indice de plus.
Ah j'ai une infos de plus je sais pas si ça peu te mettre sur la piste, mais avec l'émulateur j'ai l'erreur par contre avec B4A Bridge sur mon smartphone je n'ai pas l'erreur et l'application fonctionne. Bon le bandeau de pub ne s'affiche pas mais ça c'est un autre problème que je vais tenter de résoudre seul avant de te solliciter, mais déjà ça donne un indice de plus.
klaus Expert Licensed User Longtime User May 12, 2016 #16 Ca ne m'étonne pas. Je ne travaille plus avec des émulateurs depuis longtemps. L'émulateur Android est une catastrophe, il est horriblement lent et ne permet tout. J'avais testé l'émulateur Genymotion, il est plus rapide, mais ça n'est qu'un émulateur et ne remplace pas un appareil réel. Pour vérifier le look d'un Layout sur différents appareils il y a dans le Designer la fonction ci dessous qui montre un layout sur différents appareils. Attachments upload_2016-5-12_21-59-52.png 3.2 KB · Views: 583
Ca ne m'étonne pas. Je ne travaille plus avec des émulateurs depuis longtemps. L'émulateur Android est une catastrophe, il est horriblement lent et ne permet tout. J'avais testé l'émulateur Genymotion, il est plus rapide, mais ça n'est qu'un émulateur et ne remplace pas un appareil réel. Pour vérifier le look d'un Layout sur différents appareils il y a dans le Designer la fonction ci dessous qui montre un layout sur différents appareils.
C Calvero Member Licensed User May 13, 2016 #17 Oui je me suis déjà servi de cette fonction, après si Genymotion je m'en sers mais j'ai le même bug... Le défaut c'est que je dois faire les captures d’écrans de l'application sur tablette sauf que je n'ai pas de tablette réelle . Donc j'émule une nexus 10 ou 7 c'est une nécessité pour moi que l'appli se lance sur l'émulateur de ce fait là. Je me suis déjà servi de cette fonction elle est pratique quand tu fais des scripts dans le designer... comme moi je retouche toutes mes tailles en fonction de l’échelle dans mon code main, l'option Send UI to cloud ne me donne aucun rendu car presque tout se fait hors du designer...
Oui je me suis déjà servi de cette fonction, après si Genymotion je m'en sers mais j'ai le même bug... Le défaut c'est que je dois faire les captures d’écrans de l'application sur tablette sauf que je n'ai pas de tablette réelle . Donc j'émule une nexus 10 ou 7 c'est une nécessité pour moi que l'appli se lance sur l'émulateur de ce fait là. Je me suis déjà servi de cette fonction elle est pratique quand tu fais des scripts dans le designer... comme moi je retouche toutes mes tailles en fonction de l’échelle dans mon code main, l'option Send UI to cloud ne me donne aucun rendu car presque tout se fait hors du designer...