[英]How can I implement AdMob Ads in a LibGDX Android project?
I found this Flappy Bird GIT project: https://github.com/barodapride/flappy-tutorial-barodapride How can I implement the BannerAd in this? 我找到了这个Flappy Bird GIT项目: https : //github.com/barodapride/flappy-tutorial-barodapride如何在其中实现BannerAd? There is no layout file. 没有布局文件。 And how can I implement the InterstitialAd? 以及如何实施InterstitialAd? If I try to write 如果我尝试写
public InterstitialAd mInterstitialAd;
Then it says "cannot resolve symbol InterstitialAd" 然后说“无法解析符号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... 我知道如何在普通的Android Studio项目中执行此操作,但这是我第一次使用libGDX,它是如此复杂...
I answered here , how you integrate AdMob banner Ad inside your LibGDX project. 我在这里回答了 ,如何将AdMob标语广告集成到LibGDX项目中。
Now I answer InterstitialAd
integration after Integration of banner Ad. 现在,我在横幅广告集成之后回答InterstitialAd
集成。
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. 需要一个接口从核心模块调用showOrLoadInterstitial
,因此我在核心模块内部创建了IActivityRequestHandler
并将此接口实现为android模块的AndroidLauncher
。
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. 您不能使用类/接口名称调用非静态方法showOrLoadInterstitial()
,需要IActivityRequestHandler
实现的类的对象,因此创建MyGdxGame
的参数化构造MyGdxGame
并从android模块传递引用。
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 在MyGdxGame
游戏类中捕获IActivityRequestHandler
引用
public class MyGdxGame extends Game {
Public IActivityRequestHandler requestHandler;
public MyGdxGame(IActivityRequestHandler requestHandler){
this.requestHandler=requestHandler;
}
...
}
Now you've object reference, can called requestHandler.showOrLoadInterstitial()
现在您有了对象引用,可以调用requestHandler.showOrLoadInterstitial()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.