在emulator中运行的Android 5.0.0似乎不接受Web视图更新。也就是说,Android System Webview可以从Play商店(link)正常安装。但是,浏览器将继续使用旧版的库存WebView(根据用户代理字符串)。
为什么webview没有在emulator中升级?如何升级?
升级似乎安装在股票WebView旁边(两者都显示在应用程序列表中)。尝试通过Play商店和手动安装都无济于事。
P. P. S.这样做的目的是测试我的代码如何处理某个版本的WebView中的特定bug。
3条答案
按热度按时间kyxcudwk1#
5年前的问题,但我昨天发现了它,并得到解决后,一些修修补补。
首先,为什么从play商店安装webview不起作用,这在this question中得到了回答。简单地说,模拟器使用
com.android.webview
,而google play安装com.google.android.webview
。而且没有办法(据我所知)配置模拟器使用google的webview。所以使用play商店是一个死胡同。不过我可以做到的是卸载默认的webview并安装一个更新的版本。我不能直接升级它,因为我为新的webview获得的apk与安装的版本有不同的签名。但是卸载也不简单,因为webview是一个系统应用程序,你不能在
adb uninstall
下卸载它。我是这么做的:
这种方法的一个缺点是,您需要在写模式下引导设备以进行后续运行(尽管不需要再次运行
adb remount
)。如果你想知道,我从Google's source得到了新版本的apk(不需要手动编译)。
2w3rbyxf2#
这个答案简单地扩展了诺埃尔·德·马丁的一个,因为我遇到了一些麻烦,获得apk版本和实际安装它。
首先,为什么从play商店安装webview不起作用,这个问题已经回答了。简单地说,模拟器使用的是
com.android.webview
,而google play安装的是com.google.android.webview
。而且没有办法(据我所知)配置模拟器使用google的webview。所以使用play商店是一个死胡同。不过我可以做到的是卸载默认的webview并安装一个更新的版本。我不能直接升级它,因为我为新的webview获得的apk与安装的版本有不同的签名。但是卸载也不简单,因为webview是一个系统应用程序,你不能在
adb uninstall
下卸载它。我是这么做的:
如果你在第一步得到一个"emulator not found"错误,你可能需要添加各种android变量到你的路径,我使用了this question的灵感(我的路径是不同的,因为我在wsl上,我添加了我的
.bashrc
文件中的soruce命令)这种方法的一个缺点是,您需要在写模式下引导设备以进行后续运行(尽管不需要再次运行
adb remount
)。如果你想知道,我从Google's source得到了新版本的apk(不需要手动编译)。
为了从google source下载一个apk,我必须在https://android.googlesource.com/platform/external/chromium-webview/+log上找到我需要的合适的apk,在提交消息中搜索我的版本。
在那之后,我需要找到我的模拟器版本,https://stackoverflow.com/a/33370234/7059810给了我答案。
最后,为了真正下载APK,我需要在folder from google git上使用tgz链接(如以下屏幕截图所示:
).的确,我没有找到其他下载apk的方法。
希望能帮上忙。
lh80um4z3#
从Android 4.4开始,WebView使用Chrome进行渲染,因此您可以更新Chrome而不是WebView。
特别是,我尝试了所有其他方法来更新模拟AVD映像中的WebView,例如尝试通过APK安装升级的Chrome或WebView,即使是AOSP构建,也会导致崩溃和bug。
我发现在Android Studio的AVD模拟器中工作的唯一方法是在启用了Play Store的AVD映像中使用Play Store更新Chome。然后,您可以启动WebView Browser Tester应用,它应该会在标题栏中显示更新后的Chrome版本号。