


#46
Posté 02 February 2020 - 20:48 PM

#47
Posté 02 February 2020 - 20:55 PM
<id>com.google.ads</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>AdMob.jar</nativeLibrary>
<initializer>com.google.ads.AdMobExtension</initializer>
<finalizer>com.google.ads.AdMobExtension</finalizer>
</applicationDeployment>
</platform>
<platform name="Android-x86">
<applicationDeployment>
<nativeLibrary>AdMob.jar</nativeLibrary>
<initializer>com.google.ads.AdMobExtension</initializer>
<finalizer>com.google.ads.AdMobExtension</finalizer>
</applicationDeployment>
</platform>
<platform name="Android-ARM64">
<applicationDeployment>
<nativeLibrary>AdMob.jar</nativeLibrary>
<initializer>com.google.ads.AdMobExtension</initializer>
<finalizer>com.google.ads.AdMobExtension</finalizer>
</applicationDeployment>
</platform>
<platform name="Android-x64">
<applicationDeployment>
<nativeLibrary>AdMob.jar</nativeLibrary>
<initializer>com.google.ads.AdMobExtension</initializer>
<finalizer>com.google.ads.AdMobExtension</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>

et on compile l'ane (32 et 64 bit) enfin, tape "cmd" dans la barre de titre dans "ane_admob"
quand tu arrives là, ne reste plus qu'à essayer l'ane de test (dernière étape)
N. B. : tu devrais afficher l'extension des fichiers dans l'explorateur Windows
#48
Posté 02 February 2020 - 22:57 PM
pour l'utiliser
import com.google.ads.AdMobEvent;
var admob:AdMob = new AdMob();
admob.addEventListener(AdMobEvent.INFO, infoHandler);
var result:String = admob.init("android version");
trace( result );
function infoHandler(event:AdMobEvent):void
{
trace( event.message );
}
vérifie l'app descriptor.xml (si Animate ne l'ajoute pas)
<extensions>
<extensionID>com.google.ads</extensionID>
</extensions>
</application>
#49
Posté 03 February 2020 - 06:56 AM
Je ferai la mise en place dès ce soir, j'ai éventuellement récupéré un id google pour faire les tests.
Bonne journée à toi.
#51
Posté 03 February 2020 - 20:46 PM
#52
Posté 03 February 2020 - 21:40 PM
modifie les paramètres du projet pour obtenir une apk
#53
Posté 04 February 2020 - 06:52 AM
#54
Posté 04 February 2020 - 21:33 PM
<!--<extensions>
<extensionID>com.google.ads</extensionID>
</extensions>-->
</application>
pour le script utilise la compilation conditionnelle dans Animate
{
import com.google.ads.AdMob;
import com.google.ads.AdMobEvent;
}
CONFIG::ANDROID
{
var admob:AdMob = new AdMob();
admob.addEventListener(AdMobEvent.INFO, infoHandler);
var result:String = admob.init("android version");
trace( result );
}
CONFIG::ANDROID
function infoHandler(event:AdMobEvent):void
{
trace( event.message );
}
après tu modifies la valeur de "CONFIG::ANDROID" sur "true" ou "false" (en interne) dans "Fichier > Paramètres de publication > Paramètres avancés d’ActionScript 3.0 > Configurer les constantes"
#55
Posté 05 February 2020 - 06:58 AM
Une découverte de plus pour moi, je ne connaissait pas du tout ce système, mon premier test donne le meme résultat d'erreur et j'ai bien mis "CONFIG::ANDROID" sur "false" j'ai fais ça à l'arrache ce matin car pas beaucoup de temps, peut-être que ça ne va pas dans le xml ou que j'ai loupé quelque chose. je me replonge dessus ce soir.
#56
Posté 05 February 2020 - 07:21 AM
#57
Posté 05 February 2020 - 07:36 AM
bonne journée.
#58
Posté 05 February 2020 - 20:51 PM
#59
Posté 05 February 2020 - 21:05 PM
#60
Posté 05 February 2020 - 21:42 PM
#61
Posté 05 February 2020 - 22:48 PM
ça peut empêcher l'app descriptor de se mettre à jour automatiquement
Maintenant il faudrait passer à l'intégration d'AdMob dans l'ane, quand tu es prêt on peut commencer.
#62
Posté 06 February 2020 - 19:44 PM
#63
Posté 06 February 2020 - 20:42 PM

le code à placer dans AdMob.java
import android.app.Activity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class AdMob 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());
}
AdSize adSize = AdSize.BANNER;
AdView adView = new AdView(activity);
adView.setAdUnitId(adUnitId);
adView.setAdSize(adSize);
// FrameLayout
ViewGroup.LayoutParams frameLayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
FrameLayout mFrameLayout = new FrameLayout(activity);
mFrameLayout.setLayoutParams(frameLayout_params);
ViewGroup content = (ViewGroup) activity.findViewById(android.R.id.content);
content.addView(mFrameLayout);
RelativeLayout relativeLayout = new RelativeLayout(activity);
mFrameLayout.addView(relativeLayout);
RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams(
AdView.LayoutParams.WRAP_CONTENT,
AdView.LayoutParams.WRAP_CONTENT);
// align bottom
adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
// align center
adViewParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
relativeLayout.addView(adView, adViewParams);
AdRequest adRequest = new AdRequest.Builder()
.build();
adView.loadAd(adRequest);
return result;
}
}
puis Build > Make Project
on récupère le fichier "classes.jar" dans "StudioProjects\AdMob\app\build\outputs\aar\app-debug.aar" comme dans l'exemple précédent que l'on renomme en "AdMob.jar" et que l'on place dans le dossier "ane_admob"
quand tu arrives ici on pourra continuer
#64
Posté 06 February 2020 - 21:32 PM

#65
Posté 06 February 2020 - 21:34 PM
#66
Posté 06 February 2020 - 21:52 PM
C'est ok j'ai récupéré le fichier "classe.jar" et renommé "AdMob.jar"
#67
Posté 06 February 2020 - 22:04 PM

ces fichiers sont dans 5 fichiers *.aar :
play-services-ads-18.3.0.aar
play-services-ads-base-18.3.0.aar
play-services-ads-lite-18.3.0.aar
play-services-basement-17.0.0.aar
play-services-gass-18.3.0.aar
dans chacun se trouve un fichier "classes.jar" que l'on va renommer en :
play-services-ads-18.3.0.jar
play-services-ads-base-18.3.0.jar
play-services-ads-lite-18.3.0.jar
play-services-basement-17.0.0.jar
play-services-gass-18.3.0.jar

dans le fichier "play-services-basement-17.0.0.aar" on a besoin de récupérer la version du Google Play Services qui se trouve à l'intérieur dans "res\values\values.xml", elle nous servira plus tard

quand tu as ajouté les 5 fichiers *.jar dans le dossier "ane_admob" on pourra continuer
#68
Posté 06 February 2020 - 22:32 PM

#69
Posté 06 February 2020 - 22:44 PM
<packagedDependencies>
<packagedDependency>play-services-ads-18.3.0.jar</packagedDependency>
<packagedDependency>play-services-ads-base-18.3.0.jar</packagedDependency>
<packagedDependency>play-services-ads-lite-18.3.0.jar</packagedDependency>
<packagedDependency>play-services-basement-17.0.0.jar</packagedDependency>
<packagedDependency>play-services-gass-18.3.0.jar</packagedDependency>
</packagedDependencies>
</platform>

ensuite tape "cmd" dans la barre de titre et on va compiler l'ane
#70
Posté 06 February 2020 - 22:56 PM
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<meta-data android:name="com.google.android.gms.version"
android:value="12451000" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
]]>
</manifestAdditions>
</android>
<extensions>
<extensionID>com.google.ads</extensionID>
</extensions>
</application>
N. B. : on retrouve le "google_play_services_version"
le code pour l'utiliser :
var admob:AdMob = new AdMob();
admob.init("ca-app-pub-3940256099942544/6300978111");
"ca-app-pub-3940256099942544/6300978111" : ID fournie par Google pour faire des tests à remplacer par la suite

#71
Posté 07 February 2020 - 06:55 AM
J'ai terminé toute les étapes.
#72
Posté 07 February 2020 - 09:08 AM
#73
Posté 07 February 2020 - 09:51 AM
Normalement j'ai bien respecté toute les étapes de l'ANE, alors peut-être un problème dans l'application, faut que je verifie.
#74
Posté 07 February 2020 - 12:24 PM
le code des 3 classes java : AdMob, AdMobExtension, AdMobExtensionContext
ouvre également l'APK avec WinRAR, va dans "tonApp.apk\assets\META-INF\AIR\application.xml", copie le code de l'app descriptor
#75
Posté 07 February 2020 - 16:35 PM
#76
Posté 07 February 2020 - 23:36 PM
#77
Posté 08 February 2020 - 08:28 AM
Je réalise les tests sur un smartphone Redmi note 7 et Archos 55 platinium (résultat identique sur les deux).
Capture du dossier "ane_admod":

#78
Posté 08 February 2020 - 08:31 AM
AdMob
package com.google.admob;
import android.app.Activity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class AdMob 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());
}
AdSize adSize = AdSize.BANNER;
AdView adView = new AdView(activity);
adView.setAdUnitId(adUnitId);
adView.setAdSize(adSize);
// FrameLayout
ViewGroup.LayoutParams frameLayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
FrameLayout mFrameLayout = new FrameLayout(activity);
mFrameLayout.setLayoutParams(frameLayout_params);
ViewGroup content = (ViewGroup) activity.findViewById(android.R.id.content);
content.addView(mFrameLayout);
RelativeLayout relativeLayout = new RelativeLayout(activity);
mFrameLayout.addView(relativeLayout);
RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams(
AdView.LayoutParams.WRAP_CONTENT,
AdView.LayoutParams.WRAP_CONTENT);
// align bottom
adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
// align center
adViewParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
relativeLayout.addView(adView, adViewParams);
AdRequest adRequest = new AdRequest.Builder()
.build();
adView.loadAd(adRequest);
return result;
}
}
AdMobExtension
package com.google.admob;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREExtension;
public class AdMobExtension implements FREExtension {
/** Called when the activity is first created. */
@Override
public FREContext createContext(String arg0) {
// TODO Auto-generated method stub
//Log.e("AIR_Deviceinfo", "Inside Create Context");
return new AdMobExtensionContext();
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void initialize() {
// TODO Auto-generated method stub
}
}
AdMobExtensionContext
package com.google.admob;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import java.util.HashMap;
import java.util.Map;
public class AdMobExtensionContext extends FREContext {
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public Map<String, FREFunction> getFunctions() {
//Log.e("AIR_DeviceInfoNE", "Map function called");
Map<String, FREFunction> functionMap=new HashMap<String, FREFunction>();
functionMap.put("admob", new AdMob());
return functionMap;
}
}
#79
Posté 08 February 2020 - 08:38 AM
<application xmlns="http://ns.adobe.com/air/application/32.0">
<id>testANE</id>
<versionNumber>1.0.0</versionNumber>
<versionLabel></versionLabel>
<filename>test_ANE</filename>
<description/>
<name>test_ANE</name>
<copyright/>
<initialWindow>
<content>test_ANE.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<fullScreen>true</fullScreen>
<aspectRatio>portrait</aspectRatio>
<renderMode>cpu</renderMode>
<autoOrients>false</autoOrients></initialWindow>
<icon/>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<meta-data android:name="com.google.android.gms.version"
android:value="12451000" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
]]>
</manifestAdditions>
</android>
<extensions>
<extensionID>com.google.ads</extensionID>
</extensions>
</application>
#80
Posté 08 February 2020 - 10:48 AM
ouvre les fichiers *.aar avec WinRAR, extrait le fichier classes.jar et renomme-le comme le fichier *.aar
#81
Posté 08 February 2020 - 11:57 AM
Tout les .jar on pris du poids sauf "basement-17.0.0" qui a quelques ko en moins, j'ai testé le nouvel ANE mais ça ne donne toujours rien.

#82
Posté 08 February 2020 - 12:28 PM
#83
Posté 08 February 2020 - 12:36 PM
#84
Posté 08 February 2020 - 15:20 PM
#85
Posté 08 February 2020 - 15:32 PM
#86
Posté 08 February 2020 - 15:59 PM
#87
Posté 08 February 2020 - 16:09 PM
#88
Posté 08 February 2020 - 16:41 PM

#89
Posté 08 February 2020 - 21:47 PM
Joint le jar AdMob, je vais le contrôler.
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)