yandexmobile / metrica-sdk-android Goto Github PK
View Code? Open in Web Editor NEWAppMetrica is a free real-time ad tracking and mobile app analytics solution.
Home Page: https://tech.yandex.com/metrica-mobile-sdk/
AppMetrica is a free real-time ad tracking and mobile app analytics solution.
Home Page: https://tech.yandex.com/metrica-mobile-sdk/
Здравствуйте
Мне вот пришел такой сбой в 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)
Получил крешлог
Воспроизвести не удалось.
Яндекс метрика используется только для показа нативной рекламы.
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);
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?
Возникает при откате с 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)
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)
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)
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)
Версия 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)
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)
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)
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!
В сбоях на 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
It seems appmetrica prevent app from finish when connection is not finished.
Please, check my comments here realm/realm-java#1477 (comment)
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:
Now, I am using 2.76 version of yandex metrica.
Can you explain the reason of this crash?
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)
IMO it is better to throw some IllegalStateException
with detailed message instead
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 Гб как-то многовато...
История повторяется. Версия 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
After I added the library to the project, I get an error at build
Android Dex: [] java.lang.IllegalArgumentException: already added: La;
UPD:
Yandex.Metric has a conflict with Yandex.Maps Kit.
Вот с такой ошибкой прила пару раз крашнулась у одного юзера. 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)
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)
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)
Получил крешлог
Яндекс метрика используется только для показа нативной рекламы.
Падение происходит на некоторых устройствах Lenovo.
build.gradle:
compile 'com.yandex.android:mobmetricalib:2.42'
compile 'com.yandex.android:mobileads:2.12'
Несколько раз в отчете об ошибке от юзеров пришла такая ошибка
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
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)
Добрый день. Получил достаточное количество ANR из GooglePlay.
Метрика не используется, идет как обязательная библиотека к нативной рекламе.
build.gradle:
compile 'com.yandex.android:mobmetricalib:2.73'
compile 'com.yandex.android:mobileads:2.60'
Эта проблема присутствует только на Андроид 5.0 и 5.1
Лог потоков
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%
На паре 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)
Есть идеи?
Здравствуйте. Получила такую ошибку на одном устройстве.
Получу ли я эту ошибку в метрике, если ошибка 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)
Используем версии библиотек для отображения нативной рекламы:
compile 'com.yandex.android:mobmetricalib:2.78'
compile 'com.yandex.android:mobileads:2.62'
Наблюдаем рост ANR отчётов нашего приложения:
Судя по всему затронуты устройства на Андроид 4.*:
Отключение инициализации Метрики и отображения нативной рекламы от Яндекса проблему не решает. Наличие зависимостей (компиляция ConfigurationService в Манифест) ведёт к ANR-происшествиям.
При отправке событий в метрику я добавляю параметры по умолчанию. В ios sdk я cоздал свой класс расширяющий класс YandexMetrica и переопределяющий метод отправки события.
В андройд sdk класс com.yandex.metrica.YandexMetrica с атрибутом final, который не дает наследовать класс. В чем смысл было так делать? Мне кажется это противоречит самому принципу ООП.
Здравствуйте, прилетел такой баг в 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)
Моё приложение падает на 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 и ничего далее не делать если версия старая. Или в манифесте отключить сервис для старых версий. Или как-то иначе, лишь бы не падало.
Добрый день.
Проблема - используем кастомный install refferer. Все сделано по инструкции из документации, запрос происходит во второй активити, открывающейся после Splash Screen.
В итоге из 1000 установок по этой ссылке, параметр из диплинка получили только 60 человек. В чем может быть проблема? Неужели подавляющее большинство попадает под примечание:
Если Install Referrer приходит сразу же после установки, система не сможет правильно распознать первый запуск приложения.
И вопрос по
requestDeferredDeeplinkParameters()
Я верно понимаю, что если данные есть, то они будут возвращены мгновенно? Или сколько есть смысл ожидать ответа?
Not allowed to start service Intent { act=com.yandex.metrica.configuration.ACTION_START pkg=..*** (has extras) }: app is in background
Необходимо подготовить SDK к Android Oreo
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
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
Влияет ли android:authorities на эту ошибку ? если название уже есть в другом приложение ?
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
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.
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)
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.
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
Здравствуйте!
Ошибка приходит только с девайсов на 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)
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)
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
После апдейта в моём приложении лидером крашей стал этот 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:
Словил баг на 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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.