Страница 1 из 1

Ошибка при использовании AdListener()

Добавлено: 26 июл 2014, 11:58
sba-bgtu
Помогите, пожалуйста!
Необходимо сделать учет кликов на рекламный баннер (AdMob) в процессе перехода из приложения в браузер по рекламной ссылке. Добавляю слушатель AdListener() и приложение закрывается, выдает ошибку. Уже 2-а дня убил на эту проблему, на форумах ничего подобного не нашел...
До добавления слушателя рекламный баннер работает, реклама выводиться в приложении
Установил в SDK последнюю версию google-play-services_lib.
Прописал в Манифесте:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    package="com.bss.sm"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"  />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"  />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppBaseTheme" >
        
            <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        
        
        
        <activity
            android:name="com.bss.sm.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
        <activity android:name="SelectionActivity"></activity>    

    
        <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:name="com.google.ads.AdActivity" />  

 
    </application>

</manifest>
activity_selection.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    
    
    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/ll_adMod"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </LinearLayout>

            <com.google.ads.AdView
                android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                ads:adUnitId="@string/admob_publisher_id"
                ads:loadAdOnCreate="true">
            </com.google.ads.AdView>

            
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </TabWidget>

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1" >
            </FrameLayout>
        </LinearLayout>
    </TabHost>

</LinearLayout>

Код: Выделить всё

import com.google.android.gms.ads.*;
public class SelectionActivity extends TabActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_selection);
           
adView = (AdView)findViewById(R.id.adView);
        adView.setAdListener(new AdListener() {
    		  @Override
    		  public void onAdLeftApplication() {
    		   
    		  }
	});
    }
}

Re: Ошибка при использовании AdListener()

Добавлено: 26 июл 2014, 15:52
altwin
какую ошибку? вообще там много обработчиков, помимо onAdLeftApplication: https://developers.google.com/mobile-ad ... adlistener , к примеру в этом методе вы можете получить ошибку: onAdFailedToLoad(int errorCode)

Re: Ошибка при использовании AdListener()

Добавлено: 26 июл 2014, 21:02
sba-bgtu
Приложение просто закрывается пишет «Приложение … остановлено». Понять не могу в чем причина

Re: Ошибка при использовании AdListener()

Добавлено: 26 июл 2014, 21:15
altwin
sba-bgtu писал(а):Приложение просто закрывается пишет «Приложение … остановлено». Понять не могу в чем причина
То, что пишет приложение на экране эмулятора/девайса не имеет значение. Тут специально для этого человек записывал вебинар 2 части, именно посвященны инструментам отладки - http://youtu.be/BZNPmf-2e0I

Re: Ошибка при использовании AdListener()

Добавлено: 27 июл 2014, 10:25
sba-bgtu
Спасибо! Новая беда возникла, начал с логами разбираться, установил Genymotion согласно видео http://www.youtube.com/watch?v=BgAgNBI498Y, стандартный эмулятор вообще не запускался (слабый компьютер) теперь выдает в консоле такую ошибку:

Connection with adb was interrupted.
0 attempts have been made to reconnect.
You may want to manually restart adb from the Devices view.

Re: Ошибка при использовании AdListener()

Добавлено: 27 июл 2014, 11:16
altwin
перезапустите сервис: http://stackoverflow.com/a/4094080


P.S. не пытайтесь ничего запомнить - это не возможно в принципе.. нет людей на столько умных, чтобы заниматься программированием и нет такой памяти, которая способна уместить даже 20% информации... Сообщения об ошибках -это ключ, вам нужно научиться их читать... и если написанно: You may want to manually restart adb from the Devices view, то не брезгуйте советом и попробуйте его выполнить. Для примера простая команда unix - ps, допускает порядко 80 ключей... это одна из миллиона команд, как думаете на сколько реально их запомнить? ;)