ANR и сбой в приложении для Android, Android 8 (.1), 90% устройств Huawei - PullRequest
2 голосов
/ 13 марта 2019

После недавнего обновления приложения для Android я столкнулся с проблемой ANR и сбоем, который в основном появляется на устройствах Huawei под управлением Android 8. (Мне удалось воспроизвести ANR на Honor 7x, Android 8.0).

  • Согласно журналам консоли Google Play, сбой происходит только на Android 8.1 и на 93% на устройствах Huawei.
  • С другой стороны, ANR (опять же в основном на устройствах Huawei) не появляется на Android 8.1 (как и вышеупомянутый сбой), но почти исключительно на Android 8.0.

Две проблемы, похоже, связаны -Я предполагаю, что причина та же, но с разными результатами на Android 8.0 и Android 8.1.

Относительно причины :

  • Недавно появилось видеообъявлениеБиблиотека (https://www.teads.tv/) была добавлена ​​в приложение, и я думаю, что это вызывает проблемы.
  • Без загрузки этих объявлений не происходит сбоев.

Однако я не смог найти ничего, связанного с этимподать в суд на интернет.Мне интересно, если что-то можно сделать с этим, так как у меня нет доступа к библиотеке и понятия не имею, почему это происходит почти только на устройствах Huawei.

Я также связываюсь с авторамибиблиотека видеообъявлений, но, возможно, кто-то сталкивается / решил подобные проблемы.


Журнал консоли Android 8.1-Crash

java.lang.RuntimeException: 
  at com.android.org.conscrypt.ConscryptFileDescriptorSocket.newSsl (ConscryptFileDescriptorSocket.java:161)
  at com.android.org.conscrypt.ConscryptFileDescriptorSocket.<init> (ConscryptFileDescriptorSocket.java:152)
  at com.android.org.conscrypt.OpenSSLSocketFactoryImpl.createSocket (OpenSSLSocketFactoryImpl.java:155)
  at okhttp3.internal.connection.RealConnection.connectTls (RealConnection.java:307)
  at okhttp3.internal.connection.RealConnection.establishProtocol (RealConnection.java:282)
  at okhttp3.internal.connection.RealConnection.connect (RealConnection.java:167)
  at okhttp3.internal.connection.StreamAllocation.findConnection (StreamAllocation.java:257)
  at okhttp3.internal.connection.StreamAllocation.findHealthyConnection (StreamAllocation.java:135)
  at okhttp3.internal.connection.StreamAllocation.newStream (StreamAllocation.java:114)
  at okhttp3.internal.connection.ConnectInterceptor.intercept (ConnectInterceptor.java:42)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
  at okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:93)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
  at okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.java:93)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
  at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:126)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
  at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
  at okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:200)
  at okhttp3.RealCall$AsyncCall.execute (RealCall.java:147)
  at okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:784)
Caused by: javax.net.ssl.SSLException: 
      at com.android.org.conscrypt.NativeCrypto.SSL_new (NativeCrypto.java)
      at com.android.org.conscrypt.SslWrapper.newInstance (SslWrapper.java:58)
      at com.android.org.c`enter code here`onscrypt.ConscryptFileDescriptorSocket.newSsl (ConscryptFileDescriptorSocket.java:159)
      at com.android.org.conscrypt.ConscryptFileDescriptorSocket.<init> (ConscryptFileDescriptorSocket.java:152)
      at com.android.org`enter code here`.conscrypt.OpenSSLSocketFactoryImpl.createSocket (OpenSSLSocketFactoryImpl.java:155)
      at okhttp3.internal.connection.RealConnection.connectTls (RealConnection.java:307)
      at okhttp3.internal.connection.RealConnection.establishProtocol (RealConnection.java:282)
      at okhttp3.internal.connection.RealConnection.connect (RealConnection.java:167)
      at okhttp3.internal.connection.StreamAllocation.findConnection (StreamAllocation.java:257)
      at okhttp3.internal.connection.StreamAllocation.findHealthyConnection (StreamAllocation.java:135)
      at okhttp3.internal.connection.StreamAllocation.newStream (StreamAllocation.java:114)
      at okhttp3.internal.connection.ConnectInterceptor.intercept (ConnectInterceptor.java:42)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
      at okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:93)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
      at okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.java:93)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
      at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:126)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)
      at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)
      at okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:200)
      at okhttp3.RealCall$AsyncCall.execute (RealCall.java:147)
      at okhttp3.internal.NamedRunnable.run (NamedRunnable.java:32)
      at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
      at java.lang.Thread.run (Thread.java:784)

Размещение журналов ANR, вероятно, будетне очень полезно или не так ли?

1 Ответ

0 голосов
/ 14 марта 2019

Похоже, похожая ошибка сообщается с OkHttp , и они пришли к выводу, что она была вызвана исчерпанием ресурсов, из-за чего http не может открыть дескриптор файла.

Я думаю,что библиотека видеообъявлений открывает слишком много файлов и не закрывает их должным образом, или что-то в этом роде.Похоже, решение состоит в том, чтобы использовать другую рекламную библиотеку с лучшим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...