添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

13 人关注

安卓5.0.0运行于 仿真器 似乎不接受Web View的更新。也就是说,安卓系统的Webview从Play Store安装得很好( link ).然而,浏览器继续使用旧的库存WebView(根据用户代理字符串)。

为什么webview没有在 仿真器 以及如何能做到这一点?

P.S.升级版似乎与库存的WebView一起安装(两者都显示在应用程序列表中)。我试着通过Play Store和手动安装,都没有用。

P.P.S. 这样做的目的是为了测试我的代码如何处理某个版本的webview中的一个特定的bug。

2 个评论
你找到任何解决办法了吗?
哇,一个非常老的问题,但我今天也有同样的问题:()
android
webview
emulation
upgrade
android-5.0-lollipop
djslavik
djslavik
发布于 2015-05-04
2 个回答
Noel De Martin
Noel De Martin
发布于 2022-08-29
已采纳
0 人赞同

5年的老问题了,但我昨天发现了它,并在一些修补工作后得到了解决。

首先,至于为什么从play store安装webview不起作用,这在以下文章中有回答 this question .简而言之,模拟器使用的是 com.android.webview ,而Google Play安装的是 com.google.android.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)。但它是有效的!

如果你想知道,我从以下地方得到了新版本的apkGoogle's source(不需要手动编译)。

You can switch if you have the developer options. Settings > Developer Options > WebView implementation
Jonathan Simonney
Jonathan Simonney
发布于 2022-08-29
0 人赞同

这个答案只是在Noel De Martin的基础上进行了扩展,因为我在获取apk版本和实际安装时遇到了一些麻烦。

首先,至于为什么从play store安装webview不起作用,这在以下文章中有回答 this question .简而言之,模拟器使用的是 com.android.webview 而google play安装的是 com.google.android.webview 。而且没有办法(据我所知)将模拟器配置为使用谷歌的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

如果你在第一步得到一个 "找不到模拟器 "的错误,你可能需要在你的路径中添加各种android变量,我使用了一个灵感来自this question(我的路径是不同的,因为我在wsl上,我在我的.bashrc文件中添加了soruce命令。)

这种方法的一个缺点是,你需要在写模式下启动你的设备进行后续运行(虽然不需要再次运行adb remount)。但它是有效的!