V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
l12ab
V2EX  ›  问与答

这里有没有 oppo 公司的 android 系统开发人员?

  •  
  •   l12ab · 2018-09-27 21:43:32 +08:00 · 2526 次点击
    这是一个创建于 2260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是要反馈一个 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 ?

    3 条回复    2018-12-06 14:43:09 +08:00
    xudshen
        1
    xudshen  
       2018-11-08 10:53:43 +08:00
    妈耶,我们最近也想升级 target 到 26,然后就 crash 了
    xudshen
        2
    xudshen  
       2018-11-08 11:48:23 +08:00
    哦,客户端升级 webview 就可以了。。。。。窒息
    jasonzuo
        3
    jasonzuo  
       2018-12-06 14:43:09 +08:00
    这个问题,只需要将自己的包名换了,问题就不出现了,说明是 OPPO 对特定包名的 WebView 做优化造成的 bug
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.