确定对Chrome的依赖关系(应用在Chrome更新中被终止)

时间:2018-09-28 10:38:59

标签: android google-chrome android-webview

我注意到,每次Chrome应用获得更新时,我的应用都会被杀死。

Force stopping com.android.chrome appid=10145 user=-1: installPackageLI
Killing 14427:my.application.com/u0a263 (adj 200): stop com.android.chrome,installPackageLI

旁注:我的应用程序中根本没有使用Chrome Web视图(或一般的Web视图)。

我的应用程序中的某些依赖项是否有可能使用Web视图,这就是为什么我的应用程序被杀死的原因?如果是,如何检测到哪一个?如果没有,有什么办法可以防止这种情况发生?

1 个答案:

答案 0 :(得分:1)

我如何等待我们的应用完成(或失去焦点),然后更新才能通过?

鼓声...你不能。对于任何使用WebView(或使用WebView的框架或库)的应用程序来说,这是一个长期存在的问题。参见this bug。您的应用无法阻止Chrome / WebView更新;那将是一个安全问题。更新是由Play商店安排的,它不了解哪些应用程序依赖于WebView。

我的应用程序中的某些依赖项是否有可能使用Web视图,这就是为什么我的应用程序被杀死的原因?如果是,如何检测到哪个?

尝试adb logcat | grep WebViewFactory;每当应用开始使用WebView时,都会记录该字符串。

您还可以按照these instructions使用Chrome的开发工具检查WebView。 (如果您使用的是setWebContentsDebuggingEnabled(true)的Android版本,则可以跳过userdebug。)这将向您显示应用程序中的所有WebView,以及每个WebView的内容。

而且,如果您在构建userdebug Android时遇到麻烦,则可以在WebView constructor中添加堆栈跟踪。

似乎很奇怪,没有办法解决这个问题。

这不是一个很好的选择,但是您可以尝试将另一个进程添加到您的应用中,并且仅使用该进程中的WebView,并在不终止主进程的情况下处理崩溃。