我按照 LIBGDX 的教程设置 AdMob:https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx
我的“AndroidLauncher.java”目前看起来像这样:
package com.theashcode.hfcytGame.android;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.android.gms.ads.*;
import com.theashcode.hfcytGame.Game;
public class AndroidLauncher extends AndroidApplication {
AdView adView;
View gameView;
@Override public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
// Create the layout
RelativeLayout layout = new RelativeLayout(this);
// 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);
// Create the libgdx View
gameView = initializeForView(new Game(), config );
---- 导致问题的行 -----
// Create and setup the AdMob view
adView = new AdView(this, AdSize.BANNER, "ca-app- pub-000000000000");// Put in your secret key here
adView.loadAd(new AdRequest());
---- 行尾导致问题 ------
// Add the libgdx view
layout.addView(gameView);
// Add the AdMob view
RelativeLayout.LayoutParams adParams =
new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout.addView(adView, adParams);
// Hook it all up
setContentView(layout);
}
}
正如我所指出的,我在这一行遇到错误
// Create and setup the AdMob view
adView = new AdView(this, AdSize.BANNER, "ca-app- pub-000000000000");
adView.loadAd(new AdRequest());
第一行显示“构造函数 AdView(AndroidLauncher, AdSize, String) 未定义”
第二行写着
- “AdView 类型中的方法 loadAd(com.google.android.gms.ads.AdRequest) 不适用于参数 (com.google.ads.AdRequest)
-“构造函数 AdRequest() 不可见”
如果有人能帮助我,我将非常感激,谢谢。我对 libGDX 还很陌生。
最佳答案
问题不在于 libGDX,而在于您正在导入的广告包
不要将 google-play-services.jar 放在/libs/文件夹中。相反,请在您的项目中引用 Google Play 服务库。
将库导入到您的工作区。如果您通过 sdk 管理器下载,您可以在 sdk/extras/google/
中找到它。然后通过右键单击您的项目 => 选择属性 => Android => 添加来引用
然后您需要进行以下更改:
更改:
adView = new AdView(this, AdSize.BANNER, "ca-app- pub-000000000000");
adView.loadAd(new AdRequest());
至
AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app- pub-000000000000");
AdRequest adRequest = new AdRequest.Builder()
.build();
adView.loadAd(adRequest);
在 list 中的应用程序标记中,更改:
<activity android:name="com.google.ads.AdActivity"/>
致:
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>`
添加:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
不要忘记权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
关于java - 使用 LIBGDX 设置 Admob 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26197002/