2012-01-14 61 views
1

我一直在試圖解決這個問題數週。在StackOverflow中還有一些類似的問題,並且在AdWhirl文檔網站(onetwo)中有一些(顯然已解決)類似的問題,但是這個錯誤仍然困擾着我。我得到「nextRation爲空!」錯誤嘗試在Android中使用Adwhirl + AdMob

AdWhirl文檔是相當不完整和混淆。我遵循的步驟如下:

  • 我創建了一個AdMob帳戶,並且獲得了AdMob ID。
  • 我創建了一個AdWhirl帳戶,我在那裏放置了AdMob ID,並且獲得了AdWhirl ID。
  • 我在Java構建路徑添加了AdMob的SDK 4.3.1罐和SDK的AdWhirl 3.1.1罐
  • 在我的清單文件添加以下行:

<manifest> 
[...] 
<application> 
    [...] 
    <activity android:name="com.google.ads.AdActivity" 
     android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|uiMode|screenSize|smallestScreenSize" /> 
    <meta-data android:value="[AdWhirl ID]" android:name="ADWHIRL_KEY"/> 
</application> 

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
</manifest> 
  • 在所有我想要的廣告佈局添加以下行:

<com.adwhirl.AdWhirlLayout 
    android:id="@+id/adwhirl_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="72dip" /> 
  • 在所有與這些佈局的活動我添加了以下幾行:

public class XXX extends ListActivity implements AdWhirlInterface { 
[...] 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.YYY); 
     initAds(); 
     [...] 
    } 

[...] 
    private void initAds() { 
     AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5); 
     AdWhirlTargeting.setTestMode(false); 
     AdWhirlLayout adWhirlLayout = (AdWhirlLayout)findViewById(R.id.adwhirl_layout); 
     adWhirlLayout.setAdWhirlInterface(this); 
    } 

    public void adWhirlGeneric() { 
     Log.e(AdWhirlUtil.ADWHIRL, "In adWhirlGeneric()"); 
    } 
} 

項目構建目標:谷歌API的Android 4.0 仿真器:谷歌的API 2.1(API 7)

我在做什麼錯?

我看不到任何廣告,所有的時間我都得到「nextRation is null!」錯誤。

+0

我發現的其他問題是我在互聯網上看到不同的配置。在某些地方,AdWhirlInterface的實現是有針對性的,但其他一些地方沒有。在某些地方,XML定義佈局中的adwhirl_layout的定義是指向的,但其他一些地方則沒有。我希望最簡單的配置可能... – thelawnmowerman 2012-01-14 14:06:52

回答

2

這看起來很像簡約的AdWhirl實現。僅供參考,您不需要使用adWhirlGeneric()方法。

有幾個原因nextRation可能爲空。

  1. AdWhirl服務器在您遇到此問題期間可能已關閉,或者您在AdWhirl UI中錯誤配置了某些設置。這些錯誤不太可能。
  2. AdWhirl試圖申請一個AdMob廣告,並且由於某種原因(我的錢缺乏廣告資源)而失敗,並且AdWhirl沒有下一個配給,這意味着沒有更多的廣告網絡試圖從(和它會在下次刷新時再次嘗試)。

注意:AdWhirl中的Ration表示廣告網絡設置,如網絡名稱和相應的網絡ID。

再次檢查logcat輸出,看看導致nextRation爲空錯誤的原因。它是一個JSONException?如果是這樣,那意味着你有問題#1。做日誌說你找到了AdMob配給,然後AdMob迴應onFailedToReceiveAd,然後你得到nextRation爲空?然後你有問題#2。

相關問題