У меня простое 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, точно так же как
написано у них:
Возникает ошибка
Я создал файл 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 я не вижу никакой информации, что кто-то использовал приложение.
И не понятно корректно ли я все подключил