我得到“nextRation为空!”尝试在Android中使用Adwhirl + AdMob时出错

时间:2012-01-14 13:43:52

标签: android admob adwhirl

我一直试图解决这个问题好几个星期。 StackOverflow中还有一些其他类似的问题,AdWhirl文档网站(onetwo)中存在一些(显然已解决的)类似问题,但此错误仍困扰着我。

AdWhirl文档相当不完整且令人困惑。我遵循的步骤:

  • 我创建了一个AdMob帐户,并获得了AdMob ID。
  • 我创建了一个AdWhirl帐户,我在那里放了AdMob ID,我收到了AdWhirl ID。
  • 我在Java Build Path中添加了AdMob SDK Jar 4.3.1和AdWhirl SDK Jar 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()");
    }
}

项目构建目标:Google API Android 4.0 模拟器:Google API 2.1(API 7)

我做错了什么?

我看不到广告,而且我一直看到“nextRation为空!”错误。

2 个答案:

答案 0 :(得分:2)

这看起来非常像简约的AdWhirl实现。仅供参考,您不需要adWhirlGeneric()方法。

有几个原因,nextRation可能为空。

  1. AdWhirl服务器可能在您遇到此问题时已关闭,或者您在AdWhirl UI中错误配置了某些设置。这些错误不大可能。
  2. AdWhirl尝试申请AdMob广告,但无论出于何种原因(我的资金缺乏广告资源)都失败了,而且AdWhirl没有下一个配给,这意味着没有更多的广告网络可以尝试请求广告(和它将在下次刷新时再次尝试。)
  3. 注意:AdWhirl中的Ration表示广告网络设置,例如网络名称及其相应的网络ID。

    再次检查logcat输出,看看导致nextRation的原因是null错误。它是JSONException吗?如果是这样,那意味着你有问题#1。日志是否说您找到了AdMob点,然后AdMob以onFailedToReceiveAd回复,然后您获得nextRation为空?然后你有问题#2。

答案 1 :(得分:0)

我遇到了同样的问题,并在此帖后发现了一个解决方案: http://code.google.com/p/adwhirl/issues/detail?id=27

希望它也可以帮到你。