V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
l12ab
V2EX  ›  问与答

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

  •  
  •   l12ab · Sep 27, 2018 · 2850 views
    This topic created in 2778 days ago, the information mentioned may be changed or developed.

    就是要反馈一个 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 replies    2018-12-06 14:43:09 +08:00
    ozking
        1
    ozking  
       Nov 8, 2018
    妈耶,我们最近也想升级 target 到 26,然后就 crash 了
    ozking
        2
    ozking  
       Nov 8, 2018
    哦,客户端升级 webview 就可以了。。。。。窒息
    jasonzuo
        3
    jasonzuo  
       Dec 6, 2018
    这个问题,只需要将自己的包名换了,问题就不出现了,说明是 OPPO 对特定包名的 WebView 做优化造成的 bug
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1165 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 23:09 · PVG 07:09 · LAX 16:09 · JFK 19:09
    ♥ Do have faith in what you're doing.