gpt4 book ai didi

java - 广告不可见。不刷新广告

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:29 32 4
gpt4 key购买 nike

我制作了一款免费的安卓游戏,我想给它添加一个横幅。我关注了this tutorial我不知道为什么它不起作用。

当我在 LogCat 的模拟器上运行我的游戏时,我看到一条消息“广告不可见。不刷新广告。”当我在手机上安装游戏时,我也看不到任何广告。

这是我的 main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="hidden"
ads:adSize="BANNER"/>
</LinearLayout>

这里是 MainActivity.java 中的代码

public class MainActivity extends AndroidApplication {
private AdView adView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
cfg.useAccelerometer = true;
cfg.useCompass = true;

setContentView(R.layout.main);

// Look up the AdView as a resource and load a request.
adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

initialize (new RedSquare(), cfg);
}

@Override
public void onPause() {
adView.pause();
super.onPause();
}

@Override
public void onResume() {
super.onResume();
adView.resume();
}

@Override
public void onDestroy() {
adView.destroy();
super.onDestroy();
}
}

最佳答案

我发现使用 adMob 在文件中明确定义布局可能会让人头疼,因为有时它可能会因某些参数和布局组合而变得不可预测。似乎总是有效的是将 AdView 动态添加到某些 LinearLayout

这应该有效:

final LinearLayout fragLayout = (LinearLayout) inflater.inflate(R.layout.your_layout, container, false);
final AdView adView = new AdView(getActivity());
adView.setAdUnitId("your-admob-id");
adView.setAdSize(AdSize.BANNER);

// Here you'll append the new AdView
final LinearLayout publiView = (LinearLayout) fragLayout.findViewById(R.id.publi);
publiView.addView(adView);

final AdRequest.Builder adReq = new AdRequest.Builder();
// You should include a line like this for testing purposes,
// but only after you've tested whether your AdView works!
// This will prevent your ad being loaded each time you test
// your ad, so it will prevent you being blocked from AdMob.
// You'll find your device_id in the LogCat.
adReq.addTestDevice("your_device_id");

final AdRequest adRequest = adReq.build();
adView.loadAd(adRequest);

----编辑----

此实现适用于 Fragment,您可能正在运行 Activity,这就是您收到这些错误的原因。

  • getActivity()替换为this

  • inflater 只是(正如其名称所示)从布局文件中膨胀一个新的 LinearLayout。这意味着我已经定义了一个布局,我称之为 your_layout 并在 LinearLayout 中定义。 inflater 只是创建了一个 LinearLayout 的实例。在您的情况下,可能没有必要。

我正在添加一个可能适合您的代码:

final LinearLayout yourLayout = (LinearLayout) findViewById(R.id.your_linearlayout_id_where_you_want_to_put_your_adview);

final AdView adView = new AdView(this);
adView.setAdUnitId("your-admob-id");
adView.setAdSize(AdSize.BANNER);

yourLayout.addView(adView);

final AdRequest.Builder adReq = new AdRequest.Builder();
// You should include a line like this for testing purposes,
// but only after you've tested whether your AdView works!
// This will prevent your ad being loaded each time you test
// your ad, so it will prevent you being blocked from AdMob.
// You'll find your device_id in the LogCat.
adReq.addTestDevice("your_device_id");

final AdRequest adRequest = adReq.build();
adView.loadAd(adRequest);

关于java - 广告不可见。不刷新广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996175/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com