android - 如何在模拟器中升级 Android 的 Webview (Android 5)

标签 android webview emulation upgrade android-5.0-lollipop

中运行的 Android 5.0.0模拟器似乎不接受 Web View 更新。也就是说,Android System Webview 可以从 Play 商店 (link) 很好地安装。但是,浏览器继续使用旧的库存 WebView(根据用户代理字符串)。

为什么 中的 webview 没有升级?模拟器怎么办?

附言升级显示与库存 WebView 一起安装(两者都显示在应用程序列表中)。尝试通过 Play Store 安装并手动安装无济于事。

附言这样做的目的是测试我的代码如何处理特定版本的 webview 中的特定错误。

最佳答案

5岁的问题,但我昨天找到了它,经过一些修补后得到了解决。
首先,关于为什么从 play store 安装 webview 不起作用,在 this question 中有回答.简而言之,模拟器正在使用 com.android.webview而 google play 安装 com.google.android.webview .并且没有办法(据我所知)将模拟器配置为使用 Google 的 webview。所以使用Play商店是一条死胡同。
我可以实现的是卸载默认的 webview 并安装更新的版本。我无法升级它,因为我为新 webview 获得的 apk 与安装的 apk 具有不同的签名。但是卸载也不是很简单,因为 webview 是一个系统应用程序,您将无法在运行 adb uninstall 时卸载它。 .
这是我所做的:

# Boot the emulator in write mode and make /system writable
emulator @DeviceName -writable-system
adb remount

# Uninstall the webview app manually and reboot the device
adb shell
rm -rf /data/data/com.android.webview
rm -rf /system/app/webview
reboot

# Install the new version
adb install webview.apk
这种方法的一个缺点是您需要以写入模式启动设备以进行后续运行(但无需再次运行adb remount)。但它有效!
如果您想知道,我从 Google's source 获得了新版本的 apk (无需手动编译)。

关于android - 如何在模拟器中升级 Android 的 Webview (Android 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30019960/

相关文章:

android - 用于 android 包名称的 ant 正则表达式

android - getCropAndSetWallpaperIntent() 内容 Uri 错误

Android WebView 未加载博客

android - 有没有办法捕获 Web 控制台错误?

java - 我的 LinearLyout 的图像背景,包含一个 webview,没有出现

android - 模拟器设置菜单不起作用

java - 在具有 AMD 处理器的计算机上运行 Android 模拟器

java - 如何将地理点经度+纬度转换为两倍?

java - 以编程方式设置 Android 的日期/时间

javascript - Android Emulator 浏览器是否适合并可靠地测试 HTML/Javascript 应用程序?