StartApp广告未在我的应用上显示

出于某种原因,尽管我们在其网站上提供的pdf中遵循了设置说明,但我的应用程序中未显示StartApp广告。

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

在日志cat中,系统会报告“广告已收到”,但我的回调中从未显示“广告显示”或“广告隐藏”消息。

当我点击广告视图时,我的应用程序崩溃,并且从StartApp库中抛出了Array Index out of boundsexception。

请参阅图像和代码段。

我的节目添加了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); } } 

广告的展示方式: 空广告部分

当我点击广告部分时,我的应用崩溃了,日志猫包含以下内容:

 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加载Ad loadAd()
  • onReceiveAd()方法上,调用showAd()方法。

所以它会是这样的:

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

我在使用StartApp Banner Adds时遇到了类似的问题。 尽管文件中提到的所有步骤都已完成,但仍无法看到添加内容。

我解决了这个问题如下。 确保在横幅中添加,添加视图的高度必须为50dp(android:layout_height="50dp")或更多。 高度低于此值时,添加将不可见。

希望能帮助到你。

你可以用这种方式

 import com.searchboxsdk.android.StartAppSearch; import com.startapp.android.publish.StartAppAd; 

//在setContentView(R.layout.main_layout);

 startAppAd = new StartAppAd(this); StartAppAd.init(this, "App ID", "Dev ID"); StartAppSearch.init(this, "App ID", "Dev ID"); 

//并使用这些方法

 @Override public void onResume() { startAppAd.onResume(); super.onResume(); } @Override public void onBackPressed() { startAppAd.onBackPressed(); super.onBackPressed(); } @Override public void onPause() { super.onPause(); startAppAd.onPause(); } 

//还在manifest.xml中添加活动

    

//添加权限

        

我通过使用处理程序解决了我的问题..

  new Handler().postDelayed(new Runnable() { @Override public void run() { startAppAd.showAd(); startAppAd.loadAd(); } }, 5000); 

我意识到广告显示在应用程序的Release版本而不是Debug变体对我来说,将构建变体从Release更改为Debug就可以了。