运行在模拟器中的Android5.0.0似乎没有进行Web更新。也就是说,Android在Play Store (链接)上安装得很好。然而,浏览器继续使用旧股票WebView (根据用户代理字符串)。
为什么仿真器中没有webview升级,以及如何实现?
升级出现在股票WebView旁边(两者都出现在应用程序列表中)。尝试通过Play Store安装并手动安装,但没有效果。
这是为了测试我的代码如何在特定版本的webview中处理特定的bug。
发布于 2021-03-10 07:38:39
5岁的问题,但我发现它昨天,并得到了解决后,一些修补。
首先,关于为什么从play商店安装webview不起作用的问题,这在这个问题中得到了回答。简而言之,模拟器使用的是com.android.webview
,而google安装的是com.google.android.webview
。据我所知,没有办法(据我所知)将模拟器配置为使用Google的webview。所以使用游戏商店是一条死胡同。
不过,我能做到的是卸载默认的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
)。但很管用!
如果您想知道,我从谷歌消息来源获得了新版本的apk (不需要手动编译)。
发布于 2022-08-29 14:59:11
这个答案只是在上扩展,因为我遇到了几个问题--获得apk版本并实际安装它。
首先,关于为什么从play商店安装webview不起作用的问题,这在这个问题中得到了回答。简而言之,模拟器使用的是com.android.webview
,而google安装的是com.google.android.webview
。据我所知,没有办法(据我所知)将模拟器配置为使用Google的webview。所以使用游戏商店是一条死胡同。
不过,我能做到的是卸载默认的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变量,我使用了来自这个问题的灵感(我的路径与wsl不同,我在.bashrc
文件中添加了soruce命令)。
这种方法的一个缺点是,在以后的运行中,您需要以写模式引导设备(不需要再次运行adb remount
)。但很管用!
如果您想知道,我从谷歌消息来源获得了新版本的apk (不需要手动编译)。
要从google源代码下载apk,我必须在https://android.googlesource.com/platform/external/chromium-webview/+log上找到我需要的适当的apk,在提交消息中搜索我的版本。
之后,我需要找到我的模拟器版本,https://stackoverflow.com/a/33370234/7059810给了我答案。
最后,要真正下载apk,我需要使用来自google的文件夹上的tgz链接(如下面的屏幕截图所示):
)。事实上,我没有找到下载apk的其他方法。
希望它能帮到别人。
https://stackoverflow.com/questions/30019960
复制相似问题