java - 使用 LIBGDX 设置 Admob 时出错

标签 java android eclipse libgdx admob

我按照 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/

相关文章:

java - 需要一个字符串,但在第 1 行第 29 列路径处为 BEGIN_OBJECT

java - 使用透明蒙版将 SWT 图像保存到文件

android - OkHttp 3 和 HttpURLConnection

android - 如何获取我的应用程序的任务列表及其 Activity 堆栈?

c# - Visual Studio 的快捷方式(从 Eclipse 移动)

java - 在Java中将文件读取到字符串会导致不可见字符

java - GWT 应用程序中的上下文相关帮助

java - 使用 Gson 创建 JSON 会使应用程序崩溃

java - Android 中来自 URL 的 Xml 值

java - Orika - 不在 eclipse 中工作