Я получаю "nextRation равно нулю!" ошибка при попытке использовать Adwhirl + AdMob в Android - PullRequest
1 голос
/ 14 января 2012

Я пытался решить эту проблему в течение нескольких недель.В StackOverflow есть и другие подобные вопросы, и есть некоторые (очевидно, решенные) похожие проблемы на веб-сайте документации AdWhirl ( one и two ), но эта ошибка все еще беспокоит меня.

Документация AdWhirl довольно неполная и запутанная.Шаги, которые я выполнил:

  • Я создал учетную запись AdMob и получил идентификатор AdMob.
  • Я создал учетную запись AdWhirl, поместил там идентификатор AdMob и получилИдентификатор AdWhirl.
  • В свой путь сборки Java я добавил Jar AdMob SDK 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 is null!"ошибка.

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Это похоже на минималистичную реализацию AdWhirl. К вашему сведению, вам не нужен метод adWhirlGeneric().

Существует несколько причин, по которым nextRation может быть нулевым.

  1. Возможно, серверы AdWhirl были недоступны во время возникновения этой проблемы или из-за неправильной настройки некоторых параметров в пользовательском интерфейсе AdWhirl. Эти ошибки маловероятны.
  2. AdWhirl попытался запросить объявление AdMob, но по какой-то причине это не удалось (у меня деньги на отсутствие ресурсов), и у AdWhirl не было следующего рациона, то есть больше нет рекламных сетей, в которых можно было бы запросить объявление (и он попробует снова при следующем обновлении).

ПРИМЕЧАНИЕ. Ration в AdWhirl представляет настройки рекламной сети, такие как имя сети и соответствующий ей идентификатор сети.

Снова проверьте вывод logcat и посмотрите, что приводит к тому, что nextRation является нулевой ошибкой. Это исключение JSONException? Если это так, это означает, что у вас есть проблема № 1. В журналах говорится, что вы нашли рацион AdMob, затем AdMob ответил onFailedToReceiveAd, и вы получите nextRation is null? Тогда у вас есть проблема № 2.

0 голосов
/ 16 декабря 2012

У меня была та же проблема, и я нашел решение после этого поста: http://code.google.com/p/adwhirl/issues/detail?id=27

Надеюсь, вам это тоже поможет.

...