gpt4 book ai didi

java - StartApp 广告未显示在我的应用程序上

转载 作者:太空狗 更新时间:2023-10-29 16:39:57 25 4
gpt4 key购买 nike

出于某种原因,StartApp 广告没有显示在我的应用程序上,尽管已按照他们在其网站上提供的 pdf 中的设置说明进行操作。

我在 showAd()loadAd() 方法上实现了回调,并注意到广告已收到但未显示。后来我在将显示启动应用程序广告的 View 上创建了一个矩形背景。我注意到加载广告时会显示带有矩形边框的 View ,但 View 内没有广告内容。见附图。

在日志猫中,我的回调报告了“已收到广告”,但从来没有“显示广告”或“隐藏广告”消息。

当我点击“广告” View 时,我的应用程序因 StartApp 库抛出的数组索引越界异常而崩溃。

查看图片和代码 fragment 。

我的节目添加可运行的:

    private Runnable showAdRunnable = new Runnable() {

@Override
public void run() {
/*
WAS HERE BUT STILL COULDNT SHOW
startAppAd.showAd(new AdDisplayListener() {
@Override
public void adHidden(Ad ad) {
Log.d(TAG, "Ad hidden "+ad.getErrorMessage());
}
@Override
public void adDisplayed(Ad ad) {
Log.d(TAG, "Ad displayed "+ad.getErrorMessage());
}
});
*/
startAppAd.loadAd (new AdEventListener() {
@Override
public void onReceiveAd(Ad ad) {
Log.d(TAG, "Ad received "+ad.getErrorMessage());

startAppAd.showAd(new AdDisplayListener() {
@Override
public void adHidden(Ad ad) {
Log.d(TAG, "Ad hidden "+ad.getErrorMessage());
}
@Override
public void adDisplayed(Ad ad) {
Log.d(TAG, "Ad displayed "+ad.getErrorMessage());
}
});
}
@Override
public void onFailedToReceiveAd(Ad ad) {
Log.d(TAG, "Ad not received "+ad.getErrorMessage());
}
});
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
showing = false;
}

};

我的onCreate()

/**
* Called when the activity is first created.
*/
@Override
public void onCreate(final Bundle savedInstanceState) {
Log.d(TAG, "onCreate()");
StartAppAd.init(this, "XXXXXXX", "YYYYYYY");
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// initialize the coin image and result text views
initViews();

// initialize the onclick listener
coinImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
tossCoin();
}
});

initSounds();

showing = true;
new Handler().postDelayed(showAdRunnable , 2*1000);
}

tossmyCoin() 方法。当用户单击我的应用程序上的硬币图像以抛硬币时调用此方法。我想在每次用户掷硬币时刷新广告,所以我这样做了:

private void tossCoin() {
....

if (!showing) {
showing = true;
new Handler().postDelayed(showAdRunnable , 2*1000);
}
}

广告的显示方式: Empty Ad section

当我点击“广告”部分时,我的应用程序崩溃并且日志 cat 包含以下内容:

10-21 01:38:47.851: E/AndroidRuntime(23900): FATAL EXCEPTION: main
10-21 01:38:47.851: E/AndroidRuntime(23900): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
10-21 01:38:47.851: E/AndroidRuntime(23900): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
10-21 01:38:47.851: E/AndroidRuntime(23900): at java.util.ArrayList.get(ArrayList.java:311)
10-21 01:38:47.851: E/AndroidRuntime(23900): at com.startapp.android.publish.banner.banner3d.Banner3D.onTouchEvent(Unknown Source)
10-21 01:38:47.851: E/AndroidRuntime(23900): at android.view.View.dispatchTouchEvent(View.java:3885)
10-21 01:38:47.851: E/AndroidRuntime(23900): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903)

最佳答案

我不知道他们为什么提供如此不正确的文档。我提到的每个文档都说了相同的方法来显示插页式广告,如下所示:

startAppAd.showAd();
startAppAd.loadAd();

这里方法调用的顺序本身是错误的。这是对我有用的一点:

  • 首先使用它的 AdEventListener loadAd()
  • 在其 onReceiveAd() 方法上,调用 showAd() 方法。

所以它会是这样的:

startAppAd.loadAd(new AdEventListener() {
@Override
public void onReceiveAd(Ad ad) {
System.out.println("Ad received");

startAppAd.showAd();
}
}

关于java - StartApp 广告未显示在我的应用程序上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19484021/

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