如何在LibGDX Android项目中实施AdMob Ads? [英] How can I implement AdMob Ads in a LibGDX Android project?
问题描述
我发现了这个Flappy Bird GIT项目: https://github.com/barodapride/flappy - 教程-barodapride
如何在此实现BannerAd?
没有布局文件。
我该如何实施InterstitialAd?
如果我尝试编写
public InterstitialAd mInterstitialAd;
然后它显示无法解析符号InterstitialAd
我知道如何在普通的Android Studio项目中做到这一点,但这是我第一次使用libGDX,这非常复杂...
解决方案我回答了此处,如何您可以将AdMob横幅广告整合到您的LibGDX项目中。
现在我在横幅广告集成后回答 InterstitialAd
/ p>
private static final String AD_UNIT_ID_INTERSTITIAL =ca-app-pub-XXXXX / XXXXX;
私下InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
...
interstitialAd =新的InterstitialAd(this);
interstitialAd.setAdUnitId(AD_UNIT_ID_INTERSTITIAL);
interstitialAd.setAdListener(new AdListener(){
@Override
public void onAdLoaded(){}
$ b @Override
public void onAdClosed(){
loadIntersitialAd();
}
});
loadIntersitialAd();
$ b private void loadIntersitialAd(){
AdRequest interstitialRequest = new AdRequest.Builder()。build();
interstitialAd.loadAd(interstitialRequest); (){
}
@Override
public void showOrLoadInterstitial(){
runOnUiThread(new Runnable(){
public void run(){
if(interstitialAd.isLoaded())
interstitialAd.show();
else
loadIntersitialAd();
}
});
}
需要一个界面来调用 showOrLoadInterstitial
,所以我在核心模块中创建了 IActivityRequestHandler
,并将这个接口实现为android模块的 AndroidLauncher
。 / p>
public interface IActivityRequestHandler {
showOrLoadInterstitial();
}
编辑
您不能使用类/接口名称调用非静态方法, showOrLoadInterstitial()
,需要 IActivityRequestHandler
实现类,创建一个参数化的构造函数 MyGdxGame
并传递来自android模块的引用。
public class AndroidLauncher扩展了AndroidApplication实现IActivityRequestHandler {
$ b $ @Override
protected void onCreate Bundle savedInstanceState){
super.onCreate(savedInstanceState);
查看gameView = initializeForView(new MyGdxGame(this));
....
....
}
在 MyGdxGame
游戏类中添加 IActivityRequestHandler
的引用 $ b
public class MyGdxGame extends Game {
Public IActivityRequestHandler requestHandler;
public MyGdxGame(IActivityRequestHandler requestHandler){
this.requestHandler = requestHandler;
}
...
}
现在您已经有了对象引用,可以调用 requestHandler.showOrLoadInterstitial()
I found this Flappy Bird GIT project: https://github.com/barodapride/flappy-tutorial-barodapride How can I implement the BannerAd in this? There is no layout file. And how can I implement the InterstitialAd? If I try to write
public InterstitialAd mInterstitialAd;
Then it says "cannot resolve symbol InterstitialAd"
I know how to do this in a normal Android Studio project, but this is the first time I'm working with libGDX and this is so complicated...
I answered here, how you integrate AdMob banner Ad inside your LibGDX project.
Now I answer InterstitialAd
integration after Integration of banner Ad.
private static final String AD_UNIT_ID_INTERSTITIAL = "ca-app-pub-XXXXX/XXXXX";
private InterstitialAd interstitialAd;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
...
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(AD_UNIT_ID_INTERSTITIAL);
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {}
@Override
public void onAdClosed() {
loadIntersitialAd();
}
});
loadIntersitialAd();
}
private void loadIntersitialAd(){
AdRequest interstitialRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(interstitialRequest);
}
@Override
public void showOrLoadInterstitial() {
runOnUiThread(new Runnable() {
public void run() {
if (interstitialAd.isLoaded())
interstitialAd.show();
else
loadIntersitialAd();
}
});
}
Need an interface to call showOrLoadInterstitial
from core module so I created IActivityRequestHandler
inside core module and implement this interface to AndroidLauncher
of android module.
public interface IActivityRequestHandler {
void showOrLoadInterstitial();
}
EDIT
You can't call non-static method, showOrLoadInterstitial()
with class/interface name, need an object of IActivityRequestHandler
implemented class so create a parameterized constructor of MyGdxGame
and pass reference from android module.
public class AndroidLauncher extends AndroidApplication implements IActivityRequestHandler {
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View gameView=initializeForView(new MyGdxGame(this));
....
....
}
Capture reference of IActivityRequestHandler
inside MyGdxGame
Game class
public class MyGdxGame extends Game {
Public IActivityRequestHandler requestHandler;
public MyGdxGame(IActivityRequestHandler requestHandler){
this.requestHandler=requestHandler;
}
...
}
Now you've object reference, can called requestHandler.showOrLoadInterstitial()
这篇关于如何在LibGDX Android项目中实施AdMob Ads?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!