数周以来,我一直在努力解决这个问题。在StackOverflow中还有其他一些类似的问题,在AdWhirl文档网站(onetwo)中也有(显然已解决)类似的问题,但是这个错误仍然困扰着我。

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


我创建了一个AdMob帐户,并获得了AdMob ID。
我创建了一个AdWhirl帐户,在其中放置了AdMob ID,并获得了AdWhirl ID。
我在Java构建路径中添加了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为null!”的消息。错误。

最佳答案

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

nextRation可能为null的原因有两个。


在出现此问题期间,或者在AdWhirl UI中配置错误的某些设置期间,AdWhirl服务器可能已关闭。这些错误是不太可能的。
AdWhirl尝试请求一个AdMob广告,但由于任何原因失败(我的钱是由于缺乏库存),并且AdWhirl没有下一个定量,这意味着不再有广告网络可以尝试向其请求广告(并且它将尝试下次刷新时再次)。


注意:AdWhirl中的Ration代表广告网络设置,例如网络名称及其对应的网络ID。

再次检查logcat输出,并查看导致nextRation为空错误的原因。它是JSONException吗?如果是这样,则意味着您遇到了问题#1。日志是否表示您找到了AdMob定量,然后AdMob响应了onFailedToReceiveAd,然后您获得nextRation为空?然后,您遇到了问题2。

10-08 17:04