就是要反馈一个 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 ?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.