Не удалось создать файл блокировки webview_data.lock - PullRequest
1 голос
/ 19 февраля 2020

Мы столкнулись с исключением, которое я не знаю, как решить. Похоже, это связано с просмотром веб-страниц и мультиобработкой, и наше приложение использует до 4 процессов. Однако я ожидаю, что это cra sh на Android 9, потому что многопроцессорность требует, чтобы веб-просмотры вызывали WebView.setDataDirectorySuffix(suffix), и мы уже вызываем его. Честно говоря, Android 9 и 10 пока что хороши из 70 сбоев.

Я бы не ожидал этого cra sh в других версиях, хотя это происходит на Android 5.0, 5.1 и 6.0 только. Приложение защищено, но файл сопоставления загружен в Crashlytics, поэтому я ожидал лучшей трассировки стека, но это только у меня. Я не знаю, почему это происходит, я не смог произвести это локально с нашими Android 5 и 6 устройствами или эмулятором. Это происходит только на производстве, но часто.

Приложение использует Firebase Analytics, Google Ads с различными посредниками и при выставлении счетов за приложения, если это помогает. И недавно мы добавили что-то под названием Yandex Metrica , которое запускается в своем собственном процессе с суффиксом ": Metrica". Я предполагаю, что это происходит оттуда, потому что код в Metrica использует компонент "java .nio.FileLock" и пытается получить блокировку. По крайней мере, это то, что я нашел, декомпилировав наш APK и выполнив поиск этого пакета.

Edit

Это может быть неправильно, потому что, очевидно, другое наше приложение выдает то же исключение без использования Яндекс метрики .

Трассировка стека:

Fatal Exception: java.lang.RuntimeException: Failed to create lock file /data/user/0/com.example.app/app_webview/webview_data.lock
       at org.chromium.android_webview.AwDataDirLock.a + 22(AwDataDirLock.java:22)
       at F8.g + 46(F8.java:46)
       at E8.run + 2(E8.java:2)
       at Kw.f + 11(Kw.java:11)
       at Jw.run(Jw.java)
       at android.os.Handler.handleCallback + 743(Handler.java:743)
       at android.os.Handler.dispatchMessage + 95(Handler.java:95)
       at android.os.Looper.loop + 171(Looper.java:171)
       at android.app.ActivityThread.main + 5417(ActivityThread.java:5417)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 726(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main + 616(ZygoteInit.java:616)

Зависимости Gradle:

implementation fileTree(dir: 'libs', include: '*.aar')
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.palette:palette:1.0.0'
implementation "androidx.preference:preference:1.1.0"
implementation 'com.android.support:percent:28.0.0'
implementation 'com.google.android.material:material:1.2.0-alpha02'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.intuit.sdp:sdp-android:1.0.6'
implementation 'com.intuit.ssp:ssp-android:1.0.6'
implementation 'com.github.GrenderG:Toasty:1.3.0'
implementation 'com.daimajia.androidanimations:library:2.3@aar'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.github.anrwatchdog:anrwatchdog:1.4.0'
implementation 'com.airbnb.android:lottie:3.0.7'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

implementation ("com.google.firebase:firebase-ads:17.1.0") {
    exclude group: 'com.android.support'
}
implementation ('com.google.firebase:firebase-messaging:17.3.4') {
    exclude group: 'com.android.support'
}
implementation "com.google.firebase:firebase-crash:16.2.1"
implementation('com.labo.kaji:swipeawaydialog:0.1.1') {
    transitive = true
    exclude group: 'com.android.support'
}
implementation 'com.github.zurche:plain-pie:v0.1.1'

implementation 'com.google.firebase:firebase-config:19.1.1'

// Yandex API Metrica implementation.
implementation 'com.yandex.android:mobmetricalib:3.10.0'

// Ads

implementation 'com.google.android.material:material:1.1.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'

implementation 'com.google.ads.mediation:applovin:9.8.0.0'
implementation 'com.google.ads.mediation:facebook:5.6.0.0'
implementation 'com.mopub.volley:mopub-volley:2.1.0'
implementation('com.mopub:mopub-sdk:5.7.0@aar') {
    transitive = true
    exclude module: 'libAvid-mopub' // To exclude AVID
    exclude module: 'moat-mobile-app-kit' // To exclude Moat
}
implementation 'com.google.ads.mediation:mopub:5.7.0.0'
implementation 'com.google.ads.mediation:inmobi:7.3.0.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.google.android.gms:play-services-plus:17.0.0'
implementation 'com.google.ads.mediation:tapjoy:12.3.1.0'
implementation 'com.unity3d.ads:unity-ads:3.1.0'
implementation 'com.google.ads.mediation:unity:3.1.0.0'

// Crashlytics implementation.
implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') {
    transitive = true
}

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation "androidx.preference:preference:1.1.0"
implementation ("com.kochava.base:tracker:3.5.0") {
    exclude group: "com.android.support"
}
implementation "androidx.work:work-runtime:2.3.1"

// Required: Install Referrer (If publishing to Google Play)
// noinspection GradleDependency
implementation 'com.android.installreferrer:installreferrer:1.1'

// Required: To track down latest updates
implementation 'com.google.android.play:core:1.6.4'

// Required: To track down notifications.
implementation 'com.google.firebase:firebase-messaging:20.1.0'
implementation 'com.google.firebase:firebase-analytics:17.2.2'

implementation 'com.google.android.gms:play-services-analytics:17.0.0'
implementation 'com.google.android.gms:play-services-analytics-impl:17.0.0'

// Optional: Instant App Status Collection
implementation 'com.google.android.instantapps:instantapps:1.1.0'

// Required for Flurry Analytics integration
implementation 'com.flurry.android:analytics:11.4.0@aar'

// Crashlytics implementation.
implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') {
    transitive = true
}

// Multidex implementation.
implementation 'androidx.multidex:multidex:2.0.1'

implementation 'com.android.billingclient:billing:2.1.0'

// Don't update these libraries. They cause below API 21 to crash.
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'

implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.intuit.sdp:sdp-android:1.0.6'
implementation 'com.airbnb.android:lottie:3.0.7'
implementation 'com.romainpiel.shimmer:library:1.4.0@aar'

Любая помощь приветствуется, спасибо.

...