@chrispsow

Как правильно интегрировать AppMetrica в приложение Andorid?

У меня простое WebView приложение:

MainActivity.java

package com.asd.asdf;

import android.annotation.TargetApi;
import android.app.Application;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.yandex.metrica.YandexMetrica;
import com.yandex.metrica.YandexMetricaConfig;


public class MainActivity extends AppCompatActivity {
    private WebView mainWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainWebView = findViewById(R.id.webView);
        WebSettings webSettings = mainWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mainWebView.loadUrl("https://site.com");
        mainWebView.setWebViewClient(new WebViewClient());
    }

    private class MyWebViewClient extends WebViewClient {
        @TargetApi(Build.VERSION_CODES.N)
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return true;

        }
    }

    @Override
    public void onBackPressed() {
        if (mainWebView.canGoBack()) {
            mainWebView.goBack();
        } else {
            super.onBackPressed();
        }

    }
}

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // Creating an extended library configuration.
        YandexMetricaConfig config = YandexMetricaConfig.newConfigBuilder("API").build();
        // Initializing the AppMetrica SDK.
        YandexMetrica.activate(getApplicationContext(), config);
        // Automatic tracking of user activity.
        YandexMetrica.enableActivityAutoTracking(this);
    }
}


В самом низу добавлен класс для инициализации библиотеки AppMetrica, точно так же как написано у них:

5d2f3499915bd971489737.jpeg

Возникает ошибка

5d2f34cf34658040668568.jpeg

Я создал файл MyApp.java, который лежит рядом с основным MainActivity.java и переместил содержание из основного

package com.asdf.asdf;

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

public class MyApp extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
        // Creating an extended library configuration.
        YandexMetricaConfig config = YandexMetricaConfig.newConfigBuilder("api").build();
        // Initializing the AppMetrica SDK.
        YandexMetrica.activate(getApplicationContext(), config);
        // Automatic tracking of user activity.
        YandexMetrica.enableActivityAutoTracking(this);
    }
}


Ошибок больше не осталось, приложение запускается, проверил со встроенного эмулятора, только пишет что Class MyApp is never used как предупреждение

Но в кабинете AppMetrica я не вижу никакой информации, что кто-то использовал приложение.
И не понятно корректно ли я все подключил
  • Вопрос задан
  • 1722 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Проблема в том, что ты не разобрался, что такое MyApp.
Нужно указать его в манифесте.
https://developer.android.com/guide/topics/manifes...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы