就是要反馈一个 app 崩溃的问题,此问题仅出现在 oppo android 8.1 系统上。 之前发过几次邮件到官方公布的邮箱,一直没有回应,所以到这里问问。
大概就是,自定义了一个 webview,然后放在布局文件里,然后 activity 里调用这个布局,然后就挂了。
主要信息如下
java.lang.SecurityException:Failed to find provider com.google.settings for user 0; expected to find a valid ContentProvider for this authority
android.os.Parcel.readException(Parcel.java:2021)
android.os.Parcel.readException(Parcel.java:1967)
android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:769)
android.content.ContentResolver.registerContentObserver(ContentResolver.java:2067) android.content.ContentResolver.registerContentObserver(ContentResolver.java:2056)
org.chromium.android_webview.AwDataReductionProxyManager.start(AwDataReductionProxyManager.java:83)
com.android.webview.chromium.WebViewChromiumFactoryProvider.startChromiumLocked(WebViewChromiumFactoryProvider.java:281)
com.android.webview.chromium.WebViewChromiumFactoryProvider.ensureChromiumStartedLocked(WebViewChromiumFactoryProvider.java:196)
com.android.webview.chromium.WebViewChromiumFactoryProvider.startYourEngines(WebViewChromiumFactoryProvider.java:290)
com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:209)
android.webkit.WebView.<init>(WebView.java:663)
android.webkit.WebView.<init>(WebView.java:593)
看到 registerContentObserver,估计是和 Oreo 系列的配置有关,需要添加 Provider,但是没法添加 authority 为 com.google.settings 的 Provider 啊。 然后看到 AwDataReductionProxyManager 第 83 行,三年前 Chromium 源代码里有这个文件,第 83 行确实和 registerContentObserver 有关( https://chromium.googlesource.com/chromium/src.git/+/46.0.2478.0/android_webview/java/src/org/chromium/android_webview/AwDataReductionProxyManager.java ) ,然后 2016 年这个文件就被删除了( https://chromium.googlesource.com/chromium/src/+/4ce66b514986428274bea5eb1aed306d164f1662 )。
所以是 OPPO 用了个很旧的 webview ?
1
xudshen 2018-11-08 10:53:43 +08:00
妈耶,我们最近也想升级 target 到 26,然后就 crash 了
|
2
xudshen 2018-11-08 11:48:23 +08:00
哦,客户端升级 webview 就可以了。。。。。窒息
|
3
jasonzuo 2018-12-06 14:43:09 +08:00
这个问题,只需要将自己的包名换了,问题就不出现了,说明是 OPPO 对特定包名的 WebView 做优化造成的 bug
|