Добавление сбора статистики в приложение
На сей раз решил добавить сбор статистики через Яндекс.Метрика... все скачал, добавил по офиц документации, но на последнем этапе инициализации у них ошибка в документации...
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>
подскажите, в чем дело..