Android 4.4.3 网络视图不再遵循重定向
Posted
技术标签:
【中文标题】Android 4.4.3 网络视图不再遵循重定向【英文标题】:Android 4.4.3 web view doesn't follow redirects anymore 【发布时间】:2015-02-08 03:59:18 【问题描述】:我们的混合应用程序使用网络视图,并且从 android 版本 4.4.3 开始,网络视图不呈现。该应用程序尝试加载一个 HTTPS 网络视图并在该视图中停留大约 50 秒,之后它会引发类似于 Android Fatal signal 11 (SIGSEGV) at 0x636f7d89 (code=1). How can it be tracked down? 的异常。显然,我们沿着这个 SO 中建议的路径走下去并没有多大用处。
通过我们的实验,我们确定了以下内容
-
最后一个 HTTP 请求/响应(执行重定向)与版本 4.4.2 和 4.4.3 相同。我们在查尔斯代理中验证了这一点。
在重定向 4.4.2 创建购物车 (SSL) 请求/响应后,但 4.4.3 甚至不创建请求。
Chrome remote debugging 没有帮助,检查只是显示一个空白屏幕。
设备上的 chrome 浏览器版本无关紧要。
我们使用的重定向代码是 302。
之前的所有安卓版本都可以正常使用
虽然最初我们认为它是一个棒棒糖/ART 特定的错误,但它看起来不再像那样了。关于我们应该如何进行的任何想法?
实际上崩溃发生在这个位置 libwebviewchromium.so
墓碑文件位于 - https://gist.github.com/prolificcoder/ebd82081b47640a3cae2
来自设备的墓碑 - https://gist.github.com/anonymous/2a6a28b2ec976075f587
Logcat 日志 - https://slack-files.com/T02RAT9SZ-F0351N4NW-997f5c
【问题讨论】:
能否也添加原生崩溃?我也许可以为你象征它。 啊,不幸的是,我似乎没有模拟器的符号。您是否使用启用了硬件加速的模拟器?你在设备上遇到过这样的崩溃吗? 我在设备或启用硬件加速的模拟器上遇到了同样的崩溃 你能从设备上传崩溃吗?我有设备构建的符号,但没有模拟器构建的符号。 @marin.kosiba 我在上面上传了墓碑。感谢您对此进行调查。 【参考方案1】:看起来 Note3 libwebviwewchromium.so 与您可以从 AOSP 构建的 libwebviwewchromium.so 不匹配,但 x86 可以,所以这里是 symbolized stack。
不幸的是,您似乎在 WebView 使用的渲染引擎 Blink 中发现了一个错误。无论您尝试加载什么页面,似乎都会使 WebView 崩溃,同时杀死您的应用程序。您能否验证在不同的 WebView 中加载该特定 URL(编写一个简单的 WebView 应用程序或使用基于 WebView 的浏览器)也会崩溃?如果是这样,那么如果您可以共享 URL 或隔离 html/CSS/JS 的违规位并共享它,那将是理想的。
【讨论】:
我花了大约 5 个小时尝试创建一个示例复制,但到目前为止没有成功。我的尝试(带评论)在这里 - bitbucket.org/prolificcoder/webview/src 我怀疑我们在应用程序中做了一些奇怪的事情。感谢您的所有帮助 @satyajit - 如果您可以分享崩溃的 .apk 和重现步骤,我可以在 Chromium 错误跟踪器上创建一个受限错误。受限本质上意味着只有 Google 员工(和您)才能看到该错误。【参考方案2】:好的,问题的解决方案在于布局。我们以前没有 android:orientation="vertical" ,我认为当 webview 试图在狭窄的空间和某个地方适应所有内容时发生崩溃,同时呈现应用程序崩溃的字体。
另一位开发人员在尝试创建更好的重现时发现了这一点,并观察了示例项目中的 lint 警告,奇怪的是这些并没有出现在原始应用中
<LinearLayout
android:id="@+id/webView_holder"
android:layout_
android:layout_
android:orientation="vertical">
<ProgressBar
android:id="@+id/progress_bar"
android:layout_
android:max="100" />
<WebView
android:id="@+id/webView"
android:layout_
android:layout_ />
我不知道这对其他人有何帮助,但经验教训是布局混乱可能会导致问题
【讨论】:
@marcin.kosiba 这对你有意义吗?布局问题会导致新版本的 webviews 崩溃吗? WebView 无论如何都不会崩溃。您可能会遇到渲染故障或其他问题,但绝对不会崩溃。深入了解这一点仍然会有所帮助-您是否设法获得了工作(崩溃:)再现? 不,我们没有设法让应用程序崩溃。布局在这个新应用程序中显示错误,但在我们的应用程序开发时可能不会在旧的 eclipse/android studio 中。这是 bitbucket 分支 - bitbucket.org/prolificcoder/webview/branch/gdwebview 和提交行 bitbucket.org/prolificcoder/webview/commits/…。我不认为 apk 会有所帮助,但如果你认为我会上传它。 谢谢!有趣的是崩溃。布局错误本身并不有趣。好吧,我很高兴你设法解决了这个问题,如果你再次遇到这个问题,请随时 ping 我!以上是关于Android 4.4.3 网络视图不再遵循重定向的主要内容,如果未能解决你的问题,请参考以下文章
Android WebViewClient url 重定向(Android URL 加载系统)