Giter Site home page Giter Site logo

yandexmobile / metrica-sdk-android Goto Github PK

View Code? Open in Web Editor NEW
19.0 17.0 3.0 16.95 MB

AppMetrica is a free real-time ad tracking and mobile app analytics solution.

Home Page: https://tech.yandex.com/metrica-mobile-sdk/

mobile analytics android sdk framework crash-reporting jar aar mobile-analytics yandex-appmetrica

metrica-sdk-android's Introduction

🚀 Project Moved to Open Source! 🚀

We're thrilled to announce that AppMetrica SDK is now open source! To get the latest updates, contribute, or report issues, please visit our new repository: AppMetrica SDK on GitHub.


AppMetrica SDK

This repository is deprecated. Please, use https://github.com/yandexmobile/metrica-sample-android for issues and discussion.

Documentation

License

License agreement on use of AppMetrica SDK is available at: http://legal.yandex.ru/metrica_termsofuse/.


AppMetrica SDK

Этот репозиторий больше не поддерживается. Пожалуйста, используйте https://github.com/yandexmobile/metrica-sample-android для вопросов и обсуждения проблем.

Документация

  • Вы можете зарегистрировать свое приложение на домашней странице AppMetrica SDK.
  • Доступна документация на русском и на английском, в которой содержится полная документация по mobmetricalib и описание подключения библиотеки к вашему проекту, а также инструкции по использованию.
  • Доступен тестовый пример, демонстрирующий различные возможности библиотеки. Вы можете найти его в другом репозитории здесь.

Лицензия

Лицензионное соглашение по использованию AppMetrica SDK доступно по следующей ссылке http://legal.yandex.ru/metrica_termsofuse/.

metrica-sdk-android's People

Contributors

alexklints avatar brainail avatar drobyshys avatar nesterovichalexey avatar zayankovsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

metrica-sdk-android's Issues

Fatal Exception: java.lang.NullPointerException: uriString

Crash in mobmetricalib v. 2.73
I can't reproduce the crash, have only the log from Crashlytics.

Fatal Exception: java.lang.NullPointerException: uriString
       at android.net.Uri$StringUri.<init>(Uri.java:477)
       at android.net.Uri$StringUri.<init>(Uri.java)
       at android.net.Uri.parse(Uri.java:439)
       at com.yandex.metrica.impl.ob.dp.run(SourceFile:3417)
       at java.lang.Thread.run(Thread.java:776)

Devices are different: Samsung, Huawei, Xiaomi, Lenovo, etc.
OS versions are different too, from 4.4 to 8
122 crashes from 80 users for the last month

Full stacktrace exported from Crashlytics

java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

OS: Android N developer preview 5
Nexus 5X
Target API 24

java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

--------- Stack trace ---------

android.app.ContextImpl.checkMode(ContextImpl.java:2162)
android.app.ContextImpl.openFileOutput(ContextImpl.java:490)
android.content.ContextWrapper.openFileOutput(ContextWrapper.java:192)
com.yandex.metrica.impl.p.c(SourceFile:177)
com.yandex.metrica.impl.p.a(SourceFile:43)
com.yandex.metrica.impl.p$a.a(SourceFile:309)
com.yandex.metrica.impl.p.b(SourceFile:163)
com.yandex.metrica.impl.be.c(SourceFile:126)
com.yandex.metrica.impl.ae.c(SourceFile:134)
com.yandex.metrica.impl.ae$a.run(SourceFile:279)
com.yandex.metrica.impl.ob.az.execute(SourceFile:10)
com.yandex.metrica.impl.ob.ba.execute(SourceFile:7)
com.yandex.metrica.impl.ae.run(SourceFile:81)

https://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE
This constant was deprecated in API level 17.

StackOverflowError

v2.78
Fatal Exception: java.lang.StackOverflowError at com.yandex.metrica.impl.utils.n.a(SourceFile:82) at com.yandex.metrica.impl.utils.n.a(SourceFile:45) at com.yandex.metrica.impl.ag.a(SourceFile:96) at com.yandex.metrica.impl.af$1.a(SourceFile:53) at com.yandex.metrica.impl.af$a.run(SourceFile:31) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:841)

Very low percent users got Install Refferer

Добрый день.
Проблема - используем кастомный install refferer. Все сделано по инструкции из документации, запрос происходит во второй активити, открывающейся после Splash Screen.
В итоге из 1000 установок по этой ссылке, параметр из диплинка получили только 60 человек. В чем может быть проблема? Неужели подавляющее большинство попадает под примечание:

Если Install Referrer приходит сразу же после установки, система не сможет правильно распознать первый запуск приложения.

И вопрос по
requestDeferredDeeplinkParameters()
Я верно понимаю, что если данные есть, то они будут возвращены мгновенно? Или сколько есть смысл ожидать ответа?

java.lang.OutOfMemoryError

Version 2.60

Fatal Exception: java.lang.OutOfMemoryError: Failed to allocate a 1644167180 byte allocation with 2097152 free bytes and 37MB until OOM
       at com.yandex.mobile.ads.network.core.f.a(SourceFile:320)
       at com.yandex.mobile.ads.network.core.f.c(SourceFile:538)
       at com.yandex.mobile.ads.network.core.f$a.a(SourceFile:393)
       at com.yandex.mobile.ads.network.core.f.a(SourceFile:154)
       at com.yandex.mobile.ads.network.core.d.run(SourceFile:84)

1.6 Гб как-то многовато...

java.lang.SecurityException: failed to connect to certificate.mobile.yandex.net/2a02:6b8::3:115

Вот с такой ошибкой прила пару раз крашнулась у одного юзера. v.2.62

STACK_TRACE=java.lang.SecurityException: failed to connect to certificate.mobile.yandex.net/2a02:6b8::3:115 (port 443) after 2500ms: isConnected failed: EACCES (Permission denied)
	at libcore.io.IoBridge.isConnected(IoBridge.java:252)
	at libcore.io.IoBridge.connectErrno(IoBridge.java:178)
	at libcore.io.IoBridge.connect(IoBridge.java:112)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
	at java.net.Socket.connect(Socket.java:860)
	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
	at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
	at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
	at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
	at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
	at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:469)
	at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
	at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
	at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
	at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:292)
	at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:505)
	at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
	at com.yandex.metrica.impl.ob.fc.a(SourceFile:63)
	at com.yandex.metrica.impl.ob.ff.a(SourceFile:41)
	at com.yandex.metrica.impl.ob.fh$b.handleMessage(SourceFile:62)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loop(Looper.java:194)
	at android.os.HandlerThread.run(HandlerThread.java:60)
Caused by: libcore.io.ErrnoException: isConnected failed: EACCES (Permission denied)
	at libcore.io.IoBridge.isConnected(IoBridge.java:234)
	... 24 more
libcore.io.ErrnoException: isConnected failed: EACCES (Permission denied)
	at libcore.io.IoBridge.isConnected(IoBridge.java:234)
	at libcore.io.IoBridge.connectErrno(IoBridge.java:178)
	at libcore.io.IoBridge.connect(IoBridge.java:112)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
	at java.net.Socket.connect(Socket.java:860)
	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
	at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
	at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
	at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
	at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
	at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
	at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:469)
	at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:433)
	at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
	at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
	at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:292)
	at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:505)
	at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
	at com.yandex.metrica.impl.ob.fc.a(SourceFile:63)
	at com.yandex.metrica.impl.ob.ff.a(SourceFile:41)
	at com.yandex.metrica.impl.ob.fh$b.handleMessage(SourceFile:62)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loop(Looper.java:194)
	at android.os.HandlerThread.run(HandlerThread.java:60)

Fatal Exception: java.lang.NullPointerException

Yandex Metrica 2.77

Fatal Exception: java.lang.NullPointerException
ssl_session == null

com.android.org.conscrypt.NativeCrypto.SSL_SESSION_cipher (NativeCrypto.java)
  | com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode (HttpsURLConnectionImpl.java:25)
  | com.yandex.metrica.impl.ob.hd.a (SourceFile:63)
  | com.yandex.metrica.impl.ob.hg.a (SourceFile:41)
  | com.yandex.metrica.impl.ob.hi$b.handleMessage (SourceFile:62)
  | android.os.Handler.dispatchMessage (Handler.java:111)
  | android.os.HandlerThread.run (HandlerThread.java:61)

Fatal Exception: java.lang.NullPointerException (SourceFile:2158)

Hello!
I have found the crash in AppMetrica v2.77.
Unfortunately, I can't reproduce the crash - only the the crash log from Crashlytics.
Could you please check the following stacktrace?

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.replace(java.lang.CharSequence, java.lang.CharSequence)' on a null object reference
       at com.yandex.metrica.impl.bn.c(SourceFile:2158)
       at com.yandex.metrica.impl.bn.a(SourceFile:89)
       at com.yandex.metrica.impl.l.a(SourceFile:7133)
       at com.yandex.metrica.impl.ob.cg.a(SourceFile:129)
       at com.yandex.metrica.impl.ob.v.b(SourceFile:240)
       at com.yandex.metrica.impl.ob.v.a(SourceFile:232)
       at com.yandex.metrica.impl.ob.v$1.a(SourceFile:134)
       at com.yandex.metrica.impl.ob.bl.b(SourceFile:180)
       at com.yandex.metrica.impl.ob.bl.a(SourceFile:172)
       at com.yandex.metrica.impl.ob.bl.f(SourceFile:149)
       at com.yandex.metrica.impl.ob.bl.a(SourceFile:64)
       at com.yandex.metrica.impl.ob.az.a(SourceFile:25)
       at com.yandex.metrica.impl.ob.ba.a(SourceFile:31)
       at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
       at com.yandex.metrica.impl.ob.av.a(SourceFile:22)
       at com.yandex.metrica.impl.ob.ad.a(SourceFile:26)
       at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
       at com.yandex.metrica.impl.ob.v.a(SourceFile:181)
       at com.yandex.metrica.impl.ag$a.run(SourceFile:422)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:761)

java.lang.SecurityException process is bad

Getting those exceptions using 2.76
Fatal Exception: java.lang.SecurityException: Unable to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=ru.yandex.yandexnavi (has extras) }: Unable to launch app ru.yandex.yandexnavi/10080 for service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=ru.yandex.yandexnavi }: process is bad
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1727)
at android.app.ContextImpl.startService(ContextImpl.java:1700)
at android.content.ContextWrapper.startService(ContextWrapper.java:516)
at com.yandex.metrica.impl.ob.br.a(SourceFile:212)
at com.yandex.metrica.impl.ob.br.a(SourceFile:1179)
at com.yandex.metrica.impl.ag$2.run(SourceFile:588)
at java.lang.Thread.run(Thread.java:818)

Exception java.lang.RuntimeException: Unable to start receiver com.yandex.metrica.MetricaEventHandler: java.lang.NullPointerException: string == null

После апдейта в моём приложении лидером крашей стал этот exception.
Версия апметрики: 2.73.

Вот stacktrace из Firebase. Локально у меня это не воспроизводилось.

Exception java.lang.RuntimeException: Unable to start receiver com.yandex.metrica.MetricaEventHandler: java.lang.NullPointerException: string == null
android.app.ActivityThread.handleReceiver (ActivityThread.java:2750)
android.app.ActivityThread.access$1800 (ActivityThread.java:157)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1433)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5551)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:730)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:620)
Caused by java.lang.NullPointerException: string == null
java.util.StringTokenizer.<init> (StringTokenizer.java:95)
java.util.StringTokenizer.<init> (StringTokenizer.java:75)
android.net.UrlQuerySanitizer.parseQuery (UrlQuerySanitizer.java:619)
com.fyber.receivers.InstallReferrerReceiver.onReceive (InstallReferrerReceiver.java:48)
com.yandex.metrica.MetricaEventHandler.onReceive (SourceFile:58)
android.app.ActivityThread.handleReceiver (ActivityThread.java:2743)
android.app.ActivityThread.access$1800 (ActivityThread.java:157)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1433)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5551)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:730)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:620)

Уровень Api:

  • v22 - 43 %
  • v23 - 34 %
  • v19 - 19 %

StrictMode read from disk on YandexMetrica.activate() - StrictModeDiskReadViolation

When enabled StrictMode in Application onCreate().

Got this policy violation error:

com.yandex.sample.metrica D/StrictMode: StrictMode policy violation; ~duration=388 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=327711 violation=2
                                                                           at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)
                                                                           at libcore.io.BlockGuardOs.access(BlockGuardOs.java:67)
                                                                           at java.io.File.doAccess(File.java:281)
                                                                           at java.io.File.exists(File.java:361)
                                                                           at android.app.ContextImpl.createFilesDirLocked(ContextImpl.java:418)
                                                                           at android.app.ContextImpl.getFilesDir(ContextImpl.java:441)
                                                                           at android.content.ContextWrapper.getFilesDir(ContextWrapper.java:203)
                                                                           at com.yandex.metrica.impl.NativeCrashesHelper.<init>(SourceFile:35)
                                                                           at com.yandex.metrica.impl.aw.<init>(SourceFile:58)
                                                                           at com.yandex.metrica.impl.bm.<init>(SourceFile:69)
                                                                           at com.yandex.metrica.impl.bm.b(SourceFile:109)
                                                                           at com.yandex.metrica.impl.bm.a(SourceFile:94)
                                                                           at com.yandex.metrica.YandexMetrica.activate(SourceFile:57)
                                                                           at com.yandex.sample.metrica.Application.onCreate(Application.java:40)
                                                                           at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
                                                                           at android.app.ActivityThread.-wrap1(ActivityThread.java)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

This can cause of significant freeze on Application start.

NPE: ssl_session == null

v2.78

Fatal Exception: java.lang.NullPointerException: ssl_session == null
       at com.android.org.conscrypt.NativeCrypto.SSL_SESSION_cipher(NativeCrypto.java)
       at com.android.org.conscrypt.OpenSSLSessionImpl.getCipherSuite(OpenSSLSessionImpl.java:320)
       at com.android.okhttp.Handshake.get(Handshake.java:48)
       at com.android.okhttp.internal.http.SocketConnector.connectTls(SocketConnector.java:105)
       at com.android.okhttp.Connection.connect(Connection.java:167)
       at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:209)
       at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
       at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:354)
       at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:343)
       at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:261)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:454)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:518)
       at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
       at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
       at com.yandex.metrica.impl.ob.hj.a(SourceFile:63)
       at com.yandex.metrica.impl.ob.hm.a(SourceFile:41)
       at com.yandex.metrica.impl.ob.ho$b.handleMessage(SourceFile:62)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:207)
       at android.os.HandlerThread.run(HandlerThread.java:61)

SecurityException Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results

Здравствуйте!
Ошибка приходит только с девайсов на Android 6 (в основном с Xiaomi Redmi Note 4, Lenovo S1, LG K10 LTE)

Версия 2.77

Fatal Exception: java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
       at android.os.Parcel.readException(Parcel.java:1599)
       at android.os.Parcel.readException(Parcel.java:1552)
       at android.net.wifi.IWifiManager$Stub$Proxy.getScanResults(IWifiManager.java:1364)
       at android.net.wifi.WifiManager.getScanResults(WifiManager.java:1423)
       at com.yandex.metrica.impl.bn.c(SourceFile:1102)
       at com.yandex.metrica.impl.bn.a(SourceFile:89)
       at com.yandex.metrica.impl.l.a(SourceFile:7133)
       at com.yandex.metrica.impl.ob.cg.a(SourceFile:129)
       at com.yandex.metrica.impl.ob.v.b(SourceFile:240)
       at com.yandex.metrica.impl.ob.v.a(SourceFile:232)
       at com.yandex.metrica.impl.ob.v$1.a(SourceFile:134)
       at com.yandex.metrica.impl.ob.bl.b(SourceFile:180)
       at com.yandex.metrica.impl.ob.bl.a(SourceFile:172)
       at com.yandex.metrica.impl.ob.bl.f(SourceFile:154)
       at com.yandex.metrica.impl.ob.bl.c(SourceFile:92)
       at com.yandex.metrica.impl.ob.bl.d(SourceFile:111)
       at com.yandex.metrica.impl.ob.v.e(SourceFile:227)
       at com.yandex.metrica.impl.ob.v.f(SourceFile:357)
       at com.yandex.metrica.impl.ob.ak.a(SourceFile:40)
       at com.yandex.metrica.impl.ob.aq.a(SourceFile:45)
       at com.yandex.metrica.impl.ob.ad.a(SourceFile:26)
       at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
       at com.yandex.metrica.impl.ob.v.a(SourceFile:181)
       at com.yandex.metrica.impl.ag$a.run(SourceFile:422)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

Пожелание убрать final из класса com.yandex.metrica.YandexMetrica

При отправке событий в метрику я добавляю параметры по умолчанию. В ios sdk я cоздал свой класс расширяющий класс YandexMetrica и переопределяющий метод отправки события.

В андройд sdk класс com.yandex.metrica.YandexMetrica с атрибутом final, который не дает наследовать класс. В чем смысл было так делать? Мне кажется это противоречит самому принципу ООП.

android.database.sqlite.SQLiteCantOpenDatabaseException

We have a crash in lib v 2.80 on Lenovo VIBE K10, ZTE BLADE A510, ZTE BLADE A610, Fly FS526. Android 6.0, 7.0.
Here is the stacktrace:
Fatal Exception: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(SQLiteConnection.java) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:212) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:196) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:836) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:821) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:714) at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:576) at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163) at com.yandex.metrica.impl.ob.da.a(SourceFile:15) at com.yandex.metrica.impl.ob.cu.a(SourceFile:70) at com.yandex.metrica.impl.ob.an.a(SourceFile:59) at com.yandex.metrica.impl.ob.aq.a(SourceFile:45) at com.yandex.metrica.impl.ob.ad.a(SourceFile:26) at com.yandex.metrica.impl.ob.x.a(SourceFile:27) at com.yandex.metrica.impl.ob.v.a(SourceFile:177) at com.yandex.metrica.impl.ag$a.run(SourceFile:437) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)

Application has the permission
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
in its AndroidManifest.xml file.

Full stacktrace from Crashlytics:
issue_1133_crash.txt

Fatal Exception: java.lang.IllegalStateException

Not allowed to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=..*** (has extras) }: app is in background

Необходимо подготовить SDK к Android Oreo

Crash on some Meizu devices with Android 6

Device: MEIZU M5
OS: Android 6.0
AppMetrika version: 2.73
Stack trace:

Fatal Exception: java.lang.NullPointerException: ssl_session == null
       at com.android.org.conscrypt.NativeCrypto.SSL_SESSION_cipher(NativeCrypto.java)
       at com.android.org.conscrypt.OpenSSLSessionImpl.getCipherSuite(OpenSSLSessionImpl.java:320)
       at com.android.okhttp.Handshake.get(Handshake.java:48)
       at com.android.okhttp.internal.http.SocketConnector.connectTls(SocketConnector.java:105)
       at com.android.okhttp.Connection.connect(Connection.java:167)
       at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:209)
       at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
       at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:354)
       at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:343)
       at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:261)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:454)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:518)
       at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
       at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
       at com.yandex.metrica.impl.ob.fn.a(SourceFile:63)
       at com.yandex.metrica.impl.ob.fq.a(SourceFile:41)
       at com.yandex.metrica.impl.ob.fs$b.handleMessage(SourceFile:62)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:207)
       at android.os.HandlerThread.run(HandlerThread.java:61)

NPE in 2.77

Introduced in 2.77

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.replace(java.lang.CharSequence, java.lang.CharSequence)' on a null object reference
at com.yandex.metrica.impl.bn.c(SourceFile:2158)
at com.yandex.metrica.impl.bn.a(SourceFile:89)
at com.yandex.metrica.impl.l.a(SourceFile:7133)
at com.yandex.metrica.impl.ob.cg.a(SourceFile:129)
at com.yandex.metrica.impl.ob.v.b(SourceFile:240)
at com.yandex.metrica.impl.ob.v.a(SourceFile:232)
at com.yandex.metrica.impl.ob.v$1.a(SourceFile:134)
at com.yandex.metrica.impl.ob.bl.b(SourceFile:180)
at com.yandex.metrica.impl.ob.bl.a(SourceFile:172)
at com.yandex.metrica.impl.ob.bl.f(SourceFile:154)
at com.yandex.metrica.impl.ob.bl.c(SourceFile:92)
at com.yandex.metrica.impl.ob.bl.d(SourceFile:111)
at com.yandex.metrica.impl.ob.v.e(SourceFile:227)
at com.yandex.metrica.impl.ob.v.f(SourceFile:357)
at com.yandex.metrica.impl.ob.ak.a(SourceFile:40)
at com.yandex.metrica.impl.ob.aq.a(SourceFile:45)
at com.yandex.metrica.impl.ob.ad.a(SourceFile:26)
at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
at com.yandex.metrica.impl.ob.v.a(SourceFile:181)
at com.yandex.metrica.impl.ag$a.run(SourceFile:422)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

704 crashes in last 2 weeks

java.lang.NullPointerException

Версия 2.73

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.yandex.mobile.ads.e.g()' on a null object reference
at com.yandex.mobile.ads.t.a(SourceFile:7606)
at com.yandex.mobile.ads.t$2.a(SourceFile:1116)
at com.yandex.mobile.ads.f.b.c.b(SourceFile:38)
at com.yandex.mobile.ads.f.a.d$a.run(SourceFile:105)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5637)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

android.os.BadParcelableException: ClassNotFoundException when unmarshalling: hu

История повторяется. Версия api 1.2. Три юзера из многих тысяч столкнулись с падением. Вот, что мы видим в bugsense:

java.lang.RuntimeException: Unable to start service com.yandex.metrica.MetricaService@422875c0 with Intent { act=com.yandex.metrica.IMetricaService dat=metrica cmp=ru.ourcompanyname/com.yandex.metrica.MetricaService (has extras) }: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: hu
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2935)
at android.app.ActivityThread.access$1900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:155)
at android.app.ActivityThread.main(ActivityThread.java:5536)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1074)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:841)
at dalvik.system.NativeStart.main(Native Method) Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: hu
at android.os.Parcel.readParcelable(Parcel.java:2082)
at android.os.Parcel.readValue(Parcel.java:1970)
at android.os.Parcel.readMapInternal(Parcel.java:2231)
at android.os.Bundle.unparcel(Bundle.java:223)
at android.os.Bundle.getParcelable(Bundle.java:1165)
at com.yandex.metrica.MetricaService.a(MetricaService.java:96)
at com.yandex.metrica.MetricaService.onStartCommand(MetricaService.java:75)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2900)
... 10 more

В манифесте вроде все ок. Можно посмотреть тут, если что (изменилась только версия api): #6

Application.onCreate called twice

I ecountered with suspitios SDK behavior. It seems that Application.onCreate called twice during app lifecycle. Not 100% sure. But some how after I added:

    @Override
    public void onCreate() {
        super.onCreate();
        
        if (!CURRENT_ROCESS_NAME.equals(getCurrentProcessName()))
            return;
    }

problem disappeared.

Is it a real problem or just my misunderstanding? How do you think, can these code broke SDK functionality or not?

Thanks in advance!

Due to using "android:process" in Metrica, android application call Application:onCreate() twice

FYI,

It's quite hard to debug if Application:onCreate() is used to initialize global variables and modules, such as ACRA, AlarmManager or Metrica itself (Counter.initialize ()).

For Metrica and ACRA isn't spoils their work, but there are various with AlarmManager trouble with double runs and etc...

Can I drop android:process option in Manifest and restore normal Application:onCreate () functionality (use for one-time initialization)?

What do you advise?

java.lang.SecurityException: Unable to start service Intent

java.lang.SecurityException: Unable to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=com.opera.mini.native (has extras) }: Unable to launch app com.opera.mini.native/10135 for service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=com.opera.mini.native }: com.opera.mini.native is restricted
	at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1739)
	at android.app.ContextImpl.startService(ContextImpl.java:1712)
	at android.content.ContextWrapper.startService(ContextWrapper.java:515)
	at com.yandex.metrica.impl.ob.br.a(SourceFile:212)
	at com.yandex.metrica.impl.ob.br.a(SourceFile:1179)
	at com.yandex.metrica.impl.ag$2.run(SourceFile:588)
	at java.lang.Thread.run(Thread.java:818)

Hi, I have got strange crash in my app.
It happens only on Android 5.
On the following devices:

  1. Alcatel POP 2
  2. Alcatel 6039Y
  3. Lenovo A6010

Now, I am using 2.76 version of yandex metrica.

Can you explain the reason of this crash?

android.os.TransactionTooLargeException at com.yandex.metrica.impl.u.a(SourceFile:104)

Получил крешлог
Воспроизвести не удалось.
Яндекс метрика используется только для показа нативной рекламы.

build.gradle:

    compile 'com.yandex.android:mobmetricalib:2.41'
    compile 'com.yandex.android:mobileads:2.11'

Application.java:

            YandexMetrica.activate(getApplicationContext(), YANDEX_API_KEY);
            YandexMetrica.enableActivityAutoTracking(this);
            YandexMetrica.setTrackLocationEnabled(false);
            YandexMetrica.setCustomAppVersion(getAppVersionName());
            YandexMetrica.setReportNativeCrashesEnabled(false);
            YandexMetrica.setReportCrashesEnabled(false);

NullPointerException SourceFile:149

Несколько раз в отчете об ошибке от юзеров пришла такая ошибка

STACK_TRACE=java.lang.NullPointerException
at com.yandex.metrica.impl.ob.f.b(SourceFile:149)
at com.yandex.metrica.impl.ob.ap$a.run(SourceFile:385)
Метрика версии 2.00 (aar)
PS: device info
OS core: 3.4.0 Android: 4.3 API: 18, Device: DEXP Model: DEXP Ixion Y 5 Poduct: DEXP, screen dpi:320 h480dp, Ram: 3317760

java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError: 
  at com.yandex.metrica.YandexMetrica.activate(SourceFile:45)
  at com.myapp.App.onCreate(App.java:43)
  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
...

Android 4.4 5,149 82.8%
Android 4.2 680 10.9%
Android 4.3 387 6.2%

RuntimeException: Package manager has died

v2.78
Fatal Exception: java.lang.RuntimeException: Package manager has died at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:78) at com.yandex.metrica.impl.bl.c(SourceFile:85) at com.yandex.metrica.impl.ob.v.(SourceFile) at com.yandex.metrica.impl.ob.v.(SourceFile) at com.yandex.metrica.impl.ag.a(SourceFile:347) at com.yandex.metrica.impl.ag$a.run(SourceFile:422) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:841) Caused by android.os.DeadObjectException at android.os.BinderProxy.transact(Binder.java) at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:1393) at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:73) at com.yandex.metrica.impl.bl.c(SourceFile:85) at com.yandex.metrica.impl.ob.v.(SourceFile) at com.yandex.metrica.impl.ob.v.(SourceFile) at com.yandex.metrica.impl.ag.a(SourceFile:347) at com.yandex.metrica.impl.ag$a.run(SourceFile:422) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) at java.lang.Thread.run(Thread.java:841)

NullPointerException

Здравствуйте

Мне вот пришел такой сбой в play.google.com
Устройство: MediaPad 7 Lite (hws7930u)

java.lang.NullPointerException
at android.database.sqlite.SQLiteStatement.releaseAndUnlock(SQLiteStatement.java:301)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:126)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1730)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1603)
at com.yandex.metrica.ah$b.run(DatabaseHelper.java:500)

ANR Executing service ru.mamba.client/com.yandex.metrica.ConfigurationService

Используем версии библиотек для отображения нативной рекламы:

compile 'com.yandex.android:mobmetricalib:2.78'
compile 'com.yandex.android:mobileads:2.62'

Наблюдаем рост ANR отчётов нашего приложения:
2017-12-05 17 52 24

Судя по всему затронуты устройства на Андроид 4.*:
2017-12-05 17 52 28

Отключение инициализации Метрики и отображения нативной рекламы от Яндекса проблему не решает. Наличие зависимостей (компиляция ConfigurationService в Манифест) ведёт к ANR-происшествиям.

ConfigurationService_issue.txt

java.lang.SecurityException: Not allowed to bind to service Intent

На паре android-устройств через bugsense увидели такие падения:

java.lang.SecurityException: Not allowed to bind to service Intent { act=com.yandex.metrica.IMetricaService dat=metrica://ru.ourcompanyname cmp=ru.beboss.franchising/com.yandex.metrica.MetricaService (has extras) }
at android.app.ContextImpl.bindService(ContextImpl.java:1259)
at android.app.ContextImpl.bindService(ContextImpl.java:1233)
at android.content.ContextWrapper.bindService(ContextWrapper.java:394)
at com.yandex.metrica.g.a(MetricaConnector.java:62)
at com.yandex.metrica.Counter$d.run(Counter.java:258)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)

Есть идеи?

java.lang.StackOverflowError

compile 'com.yandex.android:mobmetricalib:2.62@aar'

STACK_TRACE=java.lang.StackOverflowError
	at javax.crypto.Cipher.getCipher(Cipher.java:321)
	at javax.crypto.Cipher.getInstance(Cipher.java:174)
	at com.yandex.metrica.impl.utils.b.a(SourceFile:72)
	at com.yandex.metrica.impl.utils.b.a(SourceFile:52)
	at com.yandex.metrica.impl.t.d(SourceFile:226)
	at com.yandex.metrica.impl.h.a(SourceFile:352)
	at com.yandex.metrica.impl.ob.ah.a(SourceFile:39)
	at com.yandex.metrica.impl.ob.ab.a(SourceFile:26)
	at com.yandex.metrica.impl.ob.v.a(SourceFile:27)
	at com.yandex.metrica.impl.ob.t.a(SourceFile:158)
	at com.yandex.metrica.MetricaService$b.run(SourceFile:391)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
	at java.lang.Thread.run(Thread.java:864)

Attempt to invoke interface method on a null object reference

v2.77

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'long com.yandex.metrica.impl.utils.q.a()' on a null object reference
at com.yandex.metrica.impl.utils.n.a(SourceFile:49)
at com.yandex.metrica.impl.bi.c(SourceFile:1240)
at com.yandex.metrica.impl.aj.c(SourceFile:147)
at com.yandex.metrica.impl.aj$a.run(SourceFile:209)
at com.yandex.metrica.impl.ob.ec.execute(SourceFile:10)
at com.yandex.metrica.impl.ob.ee.execute(SourceFile:7)
at com.yandex.metrica.impl.aj.run(SourceFile:87)

Fatal Exception: java.lang.IllegalStateException on 2.76

Словил баг на 7.0 (HMD Global Oy) и 8.0 (google pixel)

Fatal Exception: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=club.dallas.staging (has extras) }: app is in background uid null
       at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1505)
       at android.app.ContextImpl.startService(ContextImpl.java:1461)
       at android.content.ContextWrapper.startService(ContextWrapper.java:644)
       at com.yandex.metrica.impl.ob.br.a(SourceFile:212)
       at com.yandex.metrica.impl.ob.br.a(SourceFile:1179)
       at com.yandex.metrica.impl.ag$2.run(SourceFile:588)
       at java.lang.Thread.run(Thread.java:764)

SecurityException android.permission.ACCESS_WIFI_STATE

v 2.77

Fatal Exception: java.lang.SecurityException: WifiService: Neither user 10079 nor current process has android.permission.ACCESS_WIFI_STATE.
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.net.wifi.IWifiManager$Stub$Proxy.getScanResults(IWifiManager.java:1066)
at android.net.wifi.WifiManager.getScanResults(WifiManager.java:1329)
at com.yandex.metrica.impl.bn.c(SourceFile:1102)
at com.yandex.metrica.impl.bn.a(SourceFile:89)
at com.yandex.metrica.impl.l.a(SourceFile:7133)
at com.yandex.metrica.impl.ob.cg.a(SourceFile:129)
at com.yandex.metrica.impl.ob.v.b(SourceFile:240)
at com.yandex.metrica.impl.ob.v.a(SourceFile:232)
at com.yandex.metrica.impl.ob.v$1.a(SourceFile:134)
at com.yandex.metrica.impl.ob.bl.b(SourceFile:180)
at com.yandex.metrica.impl.ob.bl.a(SourceFile:172)
at com.yandex.metrica.impl.ob.bl.f(SourceFile:149)
at com.yandex.metrica.impl.ob.bl.a(SourceFile:64)
at com.yandex.metrica.impl.ob.am.a(SourceFile:23)
at com.yandex.metrica.impl.ob.ba.a(SourceFile:31)
at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
at com.yandex.metrica.impl.ob.av.a(SourceFile:22)
at com.yandex.metrica.impl.ob.ad.a(SourceFile:26)
at com.yandex.metrica.impl.ob.x.a(SourceFile:27)
at com.yandex.metrica.impl.ob.v.a(SourceFile:181)
at com.yandex.metrica.impl.ag$a.run(SourceFile:422)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)

In docs this permission isn't needed. App no need this too.
https://tech.yandex.ru/appmetrica/doc/mobile-sdk-dg/concepts/android-initialize-docpage/?ncrnd=6451

ANR Executing service my.package/com.yandex.metrica.MetricaService

Добрый день. Получил достаточное количество ANR из GooglePlay.
Метрика не используется, идет как обязательная библиотека к нативной рекламе.
build.gradle:

compile 'com.yandex.android:mobmetricalib:2.73'
compile 'com.yandex.android:mobileads:2.60'

screen shot 2017-10-19 at 20 37 51
Эта проблема присутствует только на Андроид 5.0 и 5.1
screen shot 2017-10-19 at 20 43 11
Лог потоков

java.lang.NoSuchMethodError: android.content.SharedPreferences$Editor.apply

Моё приложение падает на Android 2.1/2.2 с ошибкой:

java.lang.NoSuchMethodError: android.content.SharedPreferences$Editor.apply
    at com.yandex.metrica.impl.ob.cs.k (SourceFile:2122)
    at com.yandex.metrica.impl.ob.cw.a (SourceFile:48)
    at com.yandex.metrica.impl.az$c.a (SourceFile:2154)
    at com.yandex.metrica.impl.af.a (SourceFile:1054)
    at com.yandex.metrica.MetricaService.onCreate (SourceFile:96)
    at android.app.ActivityThread.handleCreateService (ActivityThread.java:2959)
    at android.app.ActivityThread.access$3300 (ActivityThread.java:125)
    at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2087)
    at android.os.Handler.dispatchMessage (Handler.java:99)
    at android.os.Looper.loop (Looper.java:123)
    at android.app.ActivityThread.main (ActivityThread.java:4627)
    at java.lang.reflect.Method.invokeNative (Method.java:-2)
    at java.lang.reflect.Method.invoke (Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:858)
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
    at dalvik.system.NativeStart.main (NativeStart.java:-2)

Да, я знаю что вы не поддерживаете Android 2.1 и 2.2. Поэтому на старых версиях я не инициализирую метрику и никак её не касаюсь. Но проблема в том, что у вас есть MetricaService exported=true. Предполагаю что его запускает кто-то посторонний, от чего падает именно моё приложение.

В метрике 2.41 такой проблемы не было, в метрике 2.62 она есть. Потому что вы начали использоваться метод apply.

Хорошо бы в MetricaService.onCreate проверить версию Android и ничего далее не делать если версия старая. Или в манифесте отключить сервис для старых версий. Или как-то иначе, лишь бы не падало.

java.lang.OutOfMemoryError

Здравствуйте. Получила такую ошибку на одном устройстве.
Получу ли я эту ошибку в метрике, если ошибка OutOfMemoryError произошла в библиотеке?
Практика показывает, что нет

java.lang.OutOfMemoryError: Failed to allocate a 60 byte allocation with 0 free bytes and -663KB until OOM
at com.yandex.metrica.impl.q.c(SourceFile:222)
at com.yandex.metrica.impl.c.c(SourceFile:252)
at com.yandex.metrica.impl.y.run(SourceFile:34)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

SecurityException: android.permission.READ_PHONE_STATE.

В сбоях на Google Play видим много таких падений:

java.lang.RuntimeException: Unable to create service com.yandex.metrica.MetricaService: java.lang.SecurityException: Neither user 10069 nor current process has android.permission.READ_PHONE_STATE.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2979)
at android.app.ActivityThread.access$3300(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2093)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4637)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: Neither user 10069 nor current process has android.permission.READ_PHONE_STATE.
at android.os.Parcel.readException(Parcel.java:1247)
at android.os.Parcel.readException(Parcel.java:1235)
at com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy.listen(ITelephonyRegistry.java:242)
at android.telephony.TelephonyManager.listen(TelephonyManager.java:971)
at com.yandex.metrica.z$e.a(Unknown Source)
at com.yandex.metrica.z$e.(Unknown Source)
at com.yandex.metrica.MetricaService.onCreate(Unknown Source)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2969)
... 10 more

В приложении объявлены только эти permisson:
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.CHANGE_NETWORK_STATE
android.permission.READ_LOGS
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.GET_PACKAGE_SIZE
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.GET_ACCOUNTS
android.permission.ACCESS_WIFI_STATE
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.ACCESS_COARSE_LOCATION

api_level=4

NullPointerException at com.yandex.metrica.impl.av.a(SourceFile:7047)

Version: 2.51
Fatal Exception: java.lang.NullPointerException
at com.yandex.metrica.impl.av.a(SourceFile:7047)
at com.yandex.metrica.impl.ob.j.(SourceFile)
at com.yandex.metrica.impl.ob.j.(SourceFile)
at com.yandex.metrica.MetricaService.a(SourceFile:6247)
at com.yandex.metrica.MetricaService$a.run(SourceFile:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

android.database.sqlite.SQLiteException: Can't downgrade database from version 52 to 48

Возникает при откате с 52 версии до 48
Fatal Exception: android.database.sqlite.SQLiteException: Can't downgrade database from version 52 to 48
at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:360)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at com.yandex.metrica.impl.ob.bd.a(SourceFile:170)
at com.yandex.metrica.impl.ob.bd.a(SourceFile:1163)
at com.yandex.metrica.impl.ob.bd$b.run(SourceFile:79)

Crash in Android 8

Fatal Exception: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=%Packcage% (has extras) }: app is in background uid null
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1505)
at android.app.ContextImpl.startService(ContextImpl.java:1461)
at android.content.ContextWrapper.startService(ContextWrapper.java:644)
at com.yandex.metrica.impl.ob.br.a(SourceFile:212)
at com.yandex.metrica.impl.ob.br.a(SourceFile:1179)
at com.yandex.metrica.impl.ag$2.run(SourceFile:588)
at java.lang.Thread.run(Thread.java:764)

Pixel XL
Android 8

StringIndexOutOfBoundsException

v2.77

Fatal Exception: java.lang.StringIndexOutOfBoundsException: length=14; regionStart=0; regionLength=-1
at java.lang.String.startEndAndLength(String.java:504)
at java.lang.String.substring(String.java:1333)
at com.yandex.metrica.impl.ob.ff.run(SourceFile:3429)
at java.lang.Thread.run(Thread.java:818)

Fatal Exception: java.lang.SecurityException Requires READ_PHONE_STATE

Здравствуйте, прилетел такой баг в crashlytics
Модель телефона: Zenfone Go (ASUS_X005)
Версия Android: 5.1
Версия SDK, на которой это произошло: 2.62

Fatal Exception: java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10103 nor current process has android.permission.READ_PHONE_STATE. at android.os.Parcel.readException(Parcel.java:1546) at android.os.Parcel.readException(Parcel.java:1499) at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getSubscriberIdForSubscriber(IPhoneSubInfo.java:756) at android.telephony.TelephonyManager.getSubscriberId(TelephonyManager.java:2009) at android.telephony.TelephonyManager.getNetworkOperatorName(TelephonyManager.java:1122) at android.telephony.TelephonyManager.getNetworkOperatorName(TelephonyManager.java:1094) at com.yandex.metrica.impl.ob.dq.d(SourceFile:6300) at com.yandex.metrica.impl.ob.dq.c(SourceFile:179) at com.yandex.metrica.impl.ob.dq.a(SourceFile:150) at com.yandex.metrica.impl.ob.du.a(SourceFile:56) at com.yandex.metrica.impl.k.a(SourceFile:5191) at com.yandex.metrica.impl.ob.bk.a(SourceFile:133) at com.yandex.metrica.impl.ob.t.b(SourceFile:218) at com.yandex.metrica.impl.ob.t.d(SourceFile:205) at com.yandex.metrica.impl.ob.ag.a(SourceFile:41) at com.yandex.metrica.impl.ob.ab.a(SourceFile:26) at com.yandex.metrica.impl.ob.v.a(SourceFile:27) at com.yandex.metrica.impl.ob.t.a(SourceFile:158) at com.yandex.metrica.MetricaService$b.run(SourceFile:391) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.