我一直在忙于阅读大量文档和教程,以弄清楚如何在我的游戏中实现AdMob,但到目前为止还算运气。
LibGDX Wiki文档有些过时,并且某些代码根本不起作用-> link
f.e. initializeForView不再接受布尔值,或者adView方法不能再这样使用:
View gameView = initializeForView(new HelloWorld(this), false);
.... 要么
// Create and setup the AdMob view
adView = new AdView(this, AdSize.BANNER, "xxxxxxxx"); // Put in your secret key here
adView.loadAd(new AdRequest());
我还研究了Google AdMob文档enter link description here,但它不适用于LibGDX项目。
我什至尝试不使用libgdx使其与AndroidStudio一起运行,但是即使如此,我也没有相应地工作。
我尝试解决此问题,但是经过一整天的尝试,在设备上进行调试时,我仍然无法在android设备上获得任何测试广告,并且非常欢迎您提供任何帮助。
有人可以帮我弄这个吗?
有人知道更多有关如何在libgdx项目中设置AdMob的最新信息吗?
这是我的AndroidManifest.xml的样子:[url = http://www.java-gaming.org/index.php?action=pastebin&hex=f9d35261d1111[/url]
这是我的AndroidLauncher.java的一个版本,我希望向我展示一些添加的内容,但事实并非如此:[url = http://www.java-gaming.org/?action=pastebin&id=1113[/url]
最佳答案
Here's the updated guide关于使用Google Play服务在libgdx游戏中设置admob标语和插页式广告。
保持标语显示的一种更简单的方法是设置其背景。
adMobView.setBackgroundColor(Color.BLACK);
您可以按以下文档中的说明修改代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
cfg.useAccelerometer = false;
cfg.useCompass = false;
// Do the stuff that initialize() would do for you
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
RelativeLayout layout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
layout.setLayoutParams(params);
AdView admobView = createAdView();
layout.addView(admobView);
View gameView = createGameView(cfg);
layout.addView(gameView);
setContentView(layout);
startAdvertising(admobView);
}
private AdView createAdView() {
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(AD_UNIT_ID);
adView.setId(12345); // this is an arbitrary id, allows for relative positioning in createGameView()
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
adView.setLayoutParams(params);
adView.setBackgroundColor(Color.BLACK);
return adView;
}
private View createGameView(AndroidApplicationConfiguration cfg) {
gameView = initializeForView(new AdTutorial(), cfg);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
params.addRule(RelativeLayout.BELOW, adView.getId());
gameView.setLayoutParams(params);
return gameView;
}
private void startAdvertising(AdView adView) {
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
@Override
public void onResume() {
super.onResume();
if (adView != null) adView.resume();
}
@Override
public void onPause() {
if (adView != null) adView.pause();
super.onPause();
}
@Override
public void onDestroy() {
if (adView != null) adView.destroy();
super.onDestroy();
}
关于java - libGDX:尝试实现AdMob,但无法使其正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26408277/