Forums Développement Multimédia

Aller au contenu

ANE pour Admob

ane admob android air

214 réponses à ce sujet

#136 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 09 February 2020 - 22:35 PM

erreur: Le fichier spécifié est introuvable.

#137 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 09 February 2020 - 22:40 PM

Could not set clipboard:

java.lang.IllegalStateException: Clipboard is busy
at sun.awt.windows.WClipboard.openClipboard(Native Method)
at sun.awt.windows.WClipboard.setContentsNative(WClipboard.java:75)
at sun.awt.datatransfer.SunClipboard.setContents(SunClipboard.java:106)
at com.jediterm.terminal.ui.TerminalPanel.setCopySelectionContents(TerminalPanel.java:530)
at com.jediterm.terminal.ui.TerminalPanel.copySelection(TerminalPanel.java:517)
at com.jediterm.terminal.ui.TerminalPanel.handleCopy(TerminalPanel.java:1644)
at com.jediterm.terminal.ui.TerminalPanel.handleCopyOnSelect(TerminalPanel.java:1659)
at com.jediterm.terminal.ui.TerminalPanel.access$400(TerminalPanel.java:43)
at com.jediterm.terminal.ui.TerminalPanel$2.mouseDragged(TerminalPanel.java:193)
at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:320)
at java.awt.Component.processMouseMotionEvent(Component.java:6598)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3343)
at java.awt.Component.processEvent(Component.java:6319)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4899)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4552)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4721)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:739)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:702)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:375)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

#138 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 09 February 2020 - 22:48 PM

ce message apparaît quand tu cliques sur le bouton ?

#139 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 09 February 2020 - 22:51 PM

non il ne se passe rien quand je clique dessus, aucun message.

#140 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 09 February 2020 - 23:10 PM

Encore une fois un gros merci pour ton temps passé ce week-end, je suis désolé de ne pas être d'une plus grande aide, j'espère que l'on va finir par y arriver. Bonne fin de soirée à toi.

#141 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 10 February 2020 - 15:46 PM

On peut vérifier dans "Paramètres > Applications" de l'appareil Android, la version de "Services Google Play"

#142 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 10 February 2020 - 18:31 PM

Bonsoir pol2095,
Désolé je n'ais pas trouvé cette information, que ce soit dans mon ancien smartphone ou le nouveau.

#143 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 10 February 2020 - 18:37 PM

Google Play Store -> Version: 18.6.33-all[0][PR] 292279539

#144 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 10 February 2020 - 20:49 PM

une autre solution est d'utiliser une ancienne version de play services par exemple la 9.8.0

#145 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 10 February 2020 - 21:59 PM

ok, je vais voir pour trouver ça et faire les tests.

#146 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 10 February 2020 - 22:23 PM

fais une copie du dossier "ane_admob" et renomme-le en "ane_admob_9.8.0" (supprimes les 5 jars)

il faut modifier dans "build.gradle (Module: app)"

implementation 'com.google.android.gms:play-services-ads:9.8.0'

puis synchronise

après aller dans "C:\Users\<user>\.gradle\caches\modules-2\files-2.1\com.google.android.gms"

cherchent les 5 fichiers *.aar :
play-services-ads-9.8.0.aar
play-services-ads-lite-9.8.0.aar
play-services-base-9.8.0.aar
play-services-basement-9.8.0.aar
play-services-gass-9.8.0.aar

dans chacun on extrait le fichier "classes.jar" que l'on va renommer en :
play-services-ads-9.8.0.jar
play-services-ads-lite-9.8.0.jar
play-services-base-9.8.0.jar
play-services-basement-9.8.0.jar
play-services-gass-9.8.0.jar

modifie le fichier "platform.xml"
<platform xmlns="http://ns.adobe.com/air/extension/32.0">
        <packagedDependencies>
           <packagedDependency>play-services-ads-9.8.0.jar</packagedDependency>
           <packagedDependency>play-services-ads-lite-9.8.0.jar</packagedDependency>
           <packagedDependency>play-services-base-9.8.0.jar</packagedDependency>
           <packagedDependency>play-services-basement-9.8.0.jar</packagedDependency>
           <packagedDependency>play-services-gass-9.8.0.jar</packagedDependency>
        </packagedDependencies>
</platform>

puis compile l'ane
<AIRSDK_33_Harman>\bin\adt -package -target ane AdMob.ane extension.xml -swc AdMob.swc -platform Android-ARM -platformoptions platform.xml play-services-ads-9.8.0.jar play-services-ads-lite-9.8.0.jar play-services-base-9.8.0.jar play-services-basement-9.8.0.jar play-services-gass-9.8.0.jar library.swf AdMob.jar -platform Android-x86 -platformoptions platform.xml play-services-ads-9.8.0.jar play-services-ads-lite-9.8.0.jar play-services-base-9.8.0.jar play-services-basement-9.8.0.jar play-services-gass-9.8.0.jar library.swf AdMob.jar -platform Android-ARM64 -platformoptions platform.xml play-services-ads-9.8.0.jar play-services-ads-lite-9.8.0.jar play-services-base-9.8.0.jar play-services-basement-9.8.0.jar play-services-gass-9.8.0.jar library.swf AdMob.jar -platform Android-x64 -platformoptions platform.xml play-services-ads-9.8.0.jar play-services-ads-lite-9.8.0.jar play-services-base-9.8.0.jar play-services-basement-9.8.0.jar play-services-gass-9.8.0.jar library.swf AdMob.jar

puis testes l'ane et fait un retour

#147 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 11 February 2020 - 02:37 AM

Pour ceux qui est de l'application "Services Google Play"

Image IPB Image IPB

as-tu cette version ?

#148 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 06:42 AM

Mon Redmi Note 7 à un version Android 9, l'interface est une vrai usine à gaz, "Services Google Play" est vraiment bien planqué, je te confirme qu'il s'agit bien de la Version 20.1.04 identique à ta capture.
Je n'aurais pas le temps de faire les modifications ce matin mais ce sera fait ce soir, merci à toi et bonne journée.

#149 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 11 February 2020 - 09:36 AM

Il est possible de tester également sur l'émulateur si ça fonctionne :

"Tools > AVD" dans Android Studio
créer un "Phone" avec le "Play Store", par exemple le "Pixel 3"
Publier l'application Air en x86
puis testes

N. B. : l'émulateur Android est très lent

#150 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 20:22 PM

J'ai terminé mais ça ne donne toujours rien, à noter que le poids de l'ANE a été réduit de moitiè, je ne sais pas si c'est normal, je joints le jar si ça peut-être utile.http://apklgc.free.fr/AdMob.jar

#151 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 11 February 2020 - 20:36 PM

as-tu testé sur l'émulateur ?

#152 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 20:48 PM

C'est en cours ... Android Emulator(ne répond pas), je vais tout éteindre et recommencer.

#153 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 21:46 PM

Une fois l'émulateur ouvert il n'y a aucune image l'écran du smartphone est noir, il y a juste le titre Android.

#154 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 11 February 2020 - 22:01 PM

Problème de virtualisation

va dans Tools > SDK Manager > onglet "SDK Tools", vérifie si "Intel x86 Emulator Accelerator (HAXM installer)" est installé

#155 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 22:07 PM

Oui, il est bien installé.

#156 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 11 February 2020 - 22:13 PM

Dans la fenêtre pour lancer l'émulateur tu as une flèche à droite, clique sur "Cold Boot Now"

#157 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 22:16 PM

Mème résultat, page noir avec titre Android.

#158 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 11 February 2020 - 22:41 PM

Enfin de compte le fond écran et les icônes sont apparus mais le PC est complètement saturé et n'arrive pas à suivre. Je referais un test demain matin.

#159 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 12 February 2020 - 06:38 AM

Désolé mais l'utilisation de l'émulateur est un vrai calvaire, ce matin j'ai un message:
Image IPB

et Even log me donne également des lignes rouge bien que je pense que se ne soit pas important.

06:23 Emulator: dsound: Could not initialize DirectSoundCapture

06:23 Emulator: dsound: Reason: No sound driver is available for use, or the given GUID is not a valid DirectSound device ID

06:23 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

06:23 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

06:23 Emulator: audio: Failed to create voice `goldfish_audio_in'

06:23 Emulator: C:\Users\Laurent\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: warning: opening audio input failed

06:23 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

06:23 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

06:23 Emulator: audio: Failed to create voice `adc'

#160 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 12 February 2020 - 06:55 AM

Résultat au bout de 10 mn et le PC saturé, le fond d'écran et les icônes se sont enfin affichés.

#161 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 12 February 2020 - 07:47 AM

après si tu as une clé USB, tu peux créer un live USB d'Android x86 :
https://www.01net.co...pc-1537826.html

pour tester, pas besoin de l'installer (inconvénients: les modifications d'Android ne seront pas conservées lors du prochain démarrage, tout sera à refaire)

ta clé usb va être effacer
il faudra également une seconde clé usb où placer l'apk x86

le fichier iso est téléchargeable ici
pour créer la clé USB d'installation bootable

#162 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 12 February 2020 - 18:20 PM

Non, je n'ais pas de clé USB sous la main, je suis désolé que l'ANE ne fonctionne toujours pas et de ne pouvoir t'aider à trouver la solution dans d'un domaine que je ne maîtrise pas.
P.S. Tu as également réalisé l'ANE en même temps que ce tuto ? elle fonctionne chez toi ?

#163 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 12 February 2020 - 18:53 PM

Oui, sur l'émulateur, sur mon Pixel 3, sur la clé USB x86.

#164 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 13 February 2020 - 07:03 AM

Bonjour pol2095,
En fin de compte le PC chargait une mise à jour Windows en arrière plan, et la final l'émulateur Studio Android fonctionne, maintenant je ne sais pas quel manipes je dois executer pour les tests.

#165 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 13 February 2020 - 15:03 PM

Tu débranches tes appareils Android
Tu sélectionnes "x86" dans "Fichiers > Paramètres d'Android" d'Animate
Il devrait reconnaître l'émulateur comme un appareil Android
Vérifie la version de "Services Google Play" : 20.1.04

#166 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 13 February 2020 - 18:48 PM

Ok, j'ai fait un test de l'APK sur l'émulateur, mais toujours pas de Pub...
(Je n'est pas pu vérifier la version de SGP)

#167 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 13 February 2020 - 20:01 PM

joint le fichier ane, je vais le tester.

#168 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 13 February 2020 - 20:17 PM

http://apklgc.free.fr/AdMob.ane

#169 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 13 February 2020 - 20:57 PM

ton ane fonctionne, tu utilises la version 9.8.0

il y a une modification à faire dans l'app descriptor

<meta-data android:name="com.google.android.gms.version"
        android:value="9877000" />


#170 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 13 February 2020 - 22:08 PM

C'est ok, ça fonctionnnnnnnnnnnnnne :smile: .

#171 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 13 February 2020 - 22:21 PM

ça a été laborieux, mais maintenant tu sais comment créer une ane et avoir accès aux fonctions natives Android ;-)

#172 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 13 February 2020 - 22:42 PM

C'est pas sur que je puisse créer une nouvelle fonction native Android dès demain, tu ma fait nager dans les grandes eaux, il faut inmanquablement que j'assimile toute les étapes qui ont été effectuées une par une car c'est parti dans tout les sens et je n'ai pas tout capté, entre autre je me suis posé la question sur la fin pourquoi une telle différence de poids entre la première ANE qui faisait environ 14 mo et la dernière qui fait moitié moins.
Sinon un énorme merci pour travail et ta persévérance monsieur pol2095 ;-)

#173 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 13 February 2020 - 22:48 PM

La différence de taille vient de Google qui a augmenté la taille du SDK AdMob (5 jar)

#174 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 15 February 2020 - 08:45 AM

Bonjour pol2095,
Je met en place l'ajout de publicité sur une appli, mais dans celle-ci l'interface ne permet pas l'affichage de bannière mais plus un affichage en plein écran.
Là je suis un peu perdu, je ne sais pas dans quel direction je dois chercher, j'ai regardé
https://developers.g...id/interstitial mais ça ne m'avance pas plus.

#175 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 15 February 2020 - 17:31 PM

Je pensais simplement modifier l'ID Google par une ID spécifique pour un bloc d'annoce "interstitiel" mais en vain, après quelques lectures, je pense qu'il faut que je modifie le code java "AdMob" pour y intégrer le format Interstitiel.

#176 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 15 February 2020 - 21:17 PM

ce n'est pas très compliqué, il faut créer une nouvelle classe Java "AdMobInterstitial"

package com.google.ads;

import android.app.Activity;

import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;

public class AdMobInterstitial implements FREFunction {
        @Override
        public FREObject call(FREContext arg0, FREObject[] arg1) {

                FREObject result = null;
                AdMobExtensionContext extContext = (AdMobExtensionContext) arg0;

                Activity activity = extContext.getActivity();

                String adUnitId = "";
                try
                {
                        adUnitId = arg1[0].getAsString();
                }
                catch (Exception e)
                {
                        //Log.e("AIR_Error", e.getMessage());
                }

                final InterstitialAd interstitialAd = new InterstitialAd(activity);
                interstitialAd.setAdUnitId(adUnitId);

                interstitialAd.setAdListener(new AdListener() {
                        @Override
                        public void onAdLoaded() {
                                interstitialAd.show();
                        }
                });

                AdRequest adRequest = new AdRequest.Builder()
                                .build();

                interstitialAd.loadAd(adRequest);

                return result;
        }
}

dans "AdMobExtensionContext.java" il faut ajouter la ligne "admobInterstitial"

functionMap.put("admob", new AdMob());
functionMap.put("admobInterstitial", new AdMobInterstitial());

dans "AdMob.as" il faut ajouter la méthode "initInterstitial"

public function init(value:String):void
{
        extContext.call("admob", value);
}

public function initInterstitial(value:String):void
{
        extContext.call("admobInterstitial", value);
}

dans Flash pour lancer l'annonce

import com.google.ads.AdMob;

var admob:AdMob = new AdMob();
admob.initInterstitial("ca-app-pub-3940256099942544/1033173712");


#177 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 16 February 2020 - 17:18 PM

J'ai refais l'ANE,mais j'ai l'erreur: Appel à la méthode initInterstitial peut-être non définie, via la référence de type static com.google.ads:AdMob.

Je pense avoir bien établi toutes les étapes, dis moi si j'ai manqué quelque chose:

J'ai modifié "AdMob.as" dans le dossier "src" ensuite j'ai crée une nouvelle classe Java "AdMobInterstitial" et modifié "AdMobExtensionContext.java" en ajoutant la ligne:
functionMap.put("admobInterstitial", new AdMobInterstitial());
, ensuite j'ai lancé un Make Project, récupéré et renommé la classe.jar et recompilé pour obtenir un nouvel ANE.

#178 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 16 February 2020 - 19:30 PM

tu as recompilé le swc et extrait le fichier "library.swf" ?

#179 cortoh

  • Members
  • PipPipPipPipPipPipPipPip
  • 637 messages

Posté 16 February 2020 - 21:04 PM

Ca bloc pour le SWC, il y a un problème:

AdMob.as
J'ai deux fonctions "admob" similaire je ne sais pas laquelle supprimer.

package com.google.ads
{
                import flash.events.EventDispatcher;
                import flash.events.StatusEvent;
                import flash.external.ExtensionContext;
                public class AdMob extends EventDispatcher
                {
                private var extContext:ExtensionContext = null;
                public function AdMob()
                {
                                extContext = ExtensionContext.createExtensionContext("com.google.ads", null);
                                extContext.addEventListener(StatusEvent.STATUS, onStatus);
                 }
                 public function init(value:String):String
                 {
                  return extContext.call("admob", value) as String;
                 }
 
        public function init(value:String):void
        {
          extContext.call("admob", value);
        }
        public function initInterstitial(value:String):void
        {
          extContext.call("admobInterstitial", value);
        }
                                private function onStatus(event:StatusEvent):void
                                {
                                                if (event.code == "INFO")
                                                {
                                                                dispatchEvent( new AdMobEvent( AdMobEvent.INFO, event.level ) );
                                                }
                                }
                                public function dispose():void
                                {
                                                extContext.removeEventListener(StatusEvent.STATUS, onStatus);
                                                extContext.dispose();
                                                extContext = null;
                                }
                }
}
 


#180 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1918 messages

Posté 16 February 2020 - 21:21 PM

tu en gardes une des 2, supprimes la plus ancienne.

je t'ai remis les anciennes fonctions pour voir où les placer, supprimes les doublons.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)