我有一些非常简单的代码来检查是否有更新:
com.google.android.play.core.tasks.Task<AppUpdateInfo> appUpdateInfo = AppUpdateManagerFactory.create(this).getAppUpdateInfo();
appUpdateInfo.addOnCompleteListener(new com.google.android.play.core.tasks.OnCompleteListener<AppUpdateInfo>() {
@Override
public void onComplete(com.google.android.play.core.tasks.Task<AppUpdateInfo> task) {
AppUpdateInfo result = task.getResult();
}
}
电话崩溃是在task.getResult()
行上。最初,它是在装有 Android <5.0 的手机上使用的,但是现在我已解决了这一问题,我已经看到至少有一部 Android 9 手机崩溃。在已经运行此功能的200个Beta用户中,只有一部手机崩溃了。
Fatal Exception: com.google.android.play.core.tasks.RuntimeExecutionException: com.google.android.play.core.install.InstallException: Install Error: -3
at com.google.android.play.core.tasks.k.getResult + 18(k.java:18)
at MyApplication$7.onComplete + 1(MyApplication.java:1103)
at com.google.android.play.core.tasks.a.run + 23(a.java:23)
at android.os.Handler.handleCallback + 873(Handler.java:873)
at android.os.Handler.dispatchMessage + 99(Handler.java:99)
at android.os.Looper.loop + 193(Looper.java:193)
at android.app.ActivityThread.main + 6940(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 537(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main + 858(ZygoteInit.java:858)
代码-3
的意思是ERROR_API_NOT_AVAILABLE
,所以我是否只需要尝试抓住RuntimeException
?当已经有一种返回错误代码的方法时,这似乎是一个丑陋的解决方案。
答案 0 :(得分:1)
Play核心库安装有时也会失败。请检查其release notes以获取指示。
我认为您遇到的问题是Play核心库的安装不完整。是的,如果您仍在使用com.google.android.play:core:1.5.0
,则可以考虑切换到版本1.6.0
。
dependencies {
implementation 'com.google.android.play:core:1.6.0'
}
如果由于安装不完全而导致设备中的Play Core API出现问题,则无法获得该API的错误代码(不存在)。因此,为避免这种RuntimeException
,恐怕您可能不得不采用try/catch
方法。
希望有帮助!