因某种原因,尽管我按照StartApp网站上提供的pdf文件中的设置说明进行了设置,但我的应用程序上没有显示StartApp广告。
我在showAd()和loadAd()方法上实现了回调,并注意到广告已被接收但未显示。后来我在Start App广告应该显示的视图上创建了一个矩形背景。我注意到当广告加载时,带有矩形边框的视图会显示出来,但是视图内没有广告内容。请参见附加的图片。
在日志cat中,报告了“广告已接收”,但从我的回调中从未收到“广告已显示”或“广告已隐藏”的消息。
当我点击广告视图时,我的应用程序崩溃并抛出了来自StartApp库的数组索引越界异常。
请参见图像和代码片段。
我的Show add runnable:
我的
Ad是如何展示的:
当我点击广告版块时,我的应用程序会崩溃,日志记录器包含以下内容:
我在showAd()和loadAd()方法上实现了回调,并注意到广告已被接收但未显示。后来我在Start App广告应该显示的视图上创建了一个矩形背景。我注意到当广告加载时,带有矩形边框的视图会显示出来,但是视图内没有广告内容。请参见附加的图片。
在日志cat中,报告了“广告已接收”,但从我的回调中从未收到“广告已显示”或“广告已隐藏”的消息。
当我点击广告视图时,我的应用程序崩溃并抛出了来自StartApp库的数组索引越界异常。
请参见图像和代码片段。
我的Show add runnable:
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);
}
}
Ad是如何展示的:
![空广告版块](https://istack.dev59.com/zsbOw.webp)
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)