Добавление сбора статистики в приложение

Рейтинг: 0Ответов: 0Опубликовано: 05.04.2015

На сей раз решил добавить сбор статистики через Яндекс.Метрика... все скачал, добавил по офиц документации, но на последнем этапе инициализации у них ошибка в документации...

public class MyApp extends Application {
    ...
    @Override
    public void onCreate() {
        super.onCreate();
        YandexMetrica.initialize(getApplicationContext(), API_KEY);
    }
    ...
}

но API_KEY это цифры же, почему они строкой идут (вот документация). Пробовал решить проблему путем подставления String.valueOf, но приложение даже не открывается...

Может, не в этом проблема? Прикладываю код всех нужных классов и добавок в приложение.

MyApp

package com.example.app;

import android.app.Application;
import com.yandex.metrica.YandexMetrica;


public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        YandexMetrica.initialize(getApplicationContext(), 9430);
    }
}

Также добавил в манифест строчку в application android:name="MyApp". добавил разрешения, написанные в документации. Сделал класс MetricaContentProvider

package com.example.app;

public class MetricaContentProvider extends com.yandex.metrica.MetricaContentProvider {}

Так в чем проблема? UPD1 в LogCatвведите описание изображения здесь ничего нет.Совсем ничего.

UPD2 Когда запускаешь в конфигурации простого приложения, logcat заполняется, когда debug configuration, ничего нет. Еще, обнаружил, что если в манифесте удалить строчку android:name=".MyApp", то приложение запускается. В чем прикол? ту самую ошибку с метрикой исправил, добавил класс stuff

    package com.example.app;


public class Stuff {


    public static final String APP_API_KEY = "11111(код изменен)";


}

а также теперь MyApp выглядит так:

    package com.example.world_train;

import com.yandex.metrica.YandexMetrica;


public class MyApp extends android.app.Application {


        @Override
        public void onCreate() {
            super.onCreate();

            // Initialize Yandex Metrica
            YandexMetrica.initialize(this, Stuff.APP_API_KEY);
        }

    }

UPD3 вот код AndroidManifest

   <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
          package="com.example.app"
          android:versionCode="1"
          android:installLocation="preferExternal"
          android:versionName="1.0">
    <!-- Yandex Metrica required permission. Open network sockets -->
    <uses-permission android:name="android.permission.INTERNET"/>

    <!-- Yandex Metrica required permission. Access information about networks -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <!-- Yandex Metrica optional permission. Approximate location derived from network location sources such as cell towers and Wi-Fi -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    <!-- Yandex Metrica optional permission. Precise location from location sources such as GPS, cell towers, and Wi-Fi -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <!-- Yandex Metrica optional permission. Wifi state: mac, ssid, ... -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-sdk android:minSdkVersion="14"/>
    <application
android:name=".MyApp"
            android:label="@string/app_name"
            android:icon="@drawable/logo1"

            >

        <service
                android:name="com.yandex.metrica.MetricaService"
                android:enabled="true"
                android:exported="true"
                android:process=":Metrica"
                tools:ignore="ExportedService">

            <intent-filter>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="com.yandex.metrica.IMetricaService"/>
                <data android:scheme="metrica"/>
            </intent-filter>

            <meta-data android:name="metrica:api:level" android:value="16"/>
        </service>

        <receiver
                android:name="com.yandex.metrica.MetricaEventHandler"
                android:enabled="true"
                android:exported="true"
                tools:ignore="ExportedReceiver">

            <intent-filter>
                <action android:name="com.yandex.metrica.intent.action.SYNC"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED"/>
                <action android:name="android.intent.action.PACKAGE_DATA_CLEARED"/>
                <data android:scheme="package"/>
            </intent-filter>

            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER"/>
            </intent-filter>
        </receiver>

        <provider
                android:name="com.example.app.MetricaContentProvider"
                android:authorities="com.yandex.sample.metrica.MetricaContentProvider"
                android:enabled="true"
                android:exported="true"
                tools:ignore="ExportedContentProvider"/>
        <!-- Yandex Metrica required manifest entries END -->


        <activity android:name="MainActivity"
                  android:label="@string/app_name"
            android:configChanges="orientation|screenSize|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

        </activity>


        <activity android:name=".ScreenOneActivity"/>
        <activity android:name=".ScreenOne"/>
        <activity android:name=".ScreenTwo"/>
        <activity android:name=".ScreenThree"/>
        <activity android:name=".ScreenFour"/>
        <activity android:name=".ScreenFourAbout"/>
        <activity android:name=".ScreenFourContacts"/>




    </application>
</manifest>

подскажите, в чем дело..

Ответы

Ответов пока нет.