【问题标题】:Google Play services out of date. Requires 12800000 but found 8703448Google Play 服务已过时。需要 12800000 但找到 8703448
【发布时间】:2019-09-23 22:00:26
【问题描述】:

我的应用使用以下依赖项

implementation 'com.google.android.gms:play-services-auth:16.0.1'

它连接到 Google Api 以获取设备位置并将数据存储在 Google Smart Lock 中。

除了在一台运行 Android 6 的设备上外,它工作正常。 尝试连接到 Google Api 时,出现以下错误:

ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED

W/GooglePlayServicesUtil:Google Play 服务已过期。需要 12800000 但找到 8703448

我不能回到以前版本的 play-services lib,因为 Android Studio 说

错误:所有 firebase 库必须高于或低于 14.0.0

我应该怎么做才能使应用程序可以在具有过期版本的 Google Play 服务的设备上运行?

【问题讨论】:

  • 您可以显示对话框来更新谷歌播放服务@matdev
  • 怎么做?没有其他选择?
  • 我已经使用 Firebase 在我的应用中实现了 Google 登录。未更新 google play 服务的用户无法使用 Google 登录。所以我对此进行了研究,唯一的选择是让用户更新播放版本。我的问题是如果firebase不允许登录我们别无选择,除非我们更新应用程序@matdev
  • 您是否签入了根级别的“build.gradle”文件?
  • 感谢@g.brahma Datta 如何获取安装的 Google Play 服务的版本号?如果您将其发布为答案,我会接受。

标签: android google-play-services


【解决方案1】:

我通过使用此代码更新 Google Play 服务版本解决了该错误,

            //On button click of the google signIn 

             googleSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent signInIntent = mGoogleSignInClient.getSignInIntent();
            startActivityForResult(signInIntent,GOOGLE_SIGNIN_ID);
            }


    //onActivity Result code.
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent 
  data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GOOGLE_SIGNIN_ID){
        Task<GoogleSignInAccount> googleSignInAccountTask = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {

            GoogleSignInAccount googleSignInAccount = googleSignInAccountTask.getResult(ApiException.class);
            fireBaseAuthenticationWithGoogle(googleSignInAccount);

        }catch (ApiException e){

            //if user doesn't have updated google play services version

            if (e.getStatusCode() == 12500){

                try{
                    // show your own AlertDialog for example:
                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
                    // set the message
                    builder.setMessage("This app uses google play services for signing in")
                            .setTitle("Do you want to update?");

                    builder.setPositiveButton("Ok", (dialog, id) -> {

                        //final String appPackageName = "com.google.android.gms";
                        final String appPackageName = "com.google.android.gms&hl=en_IN";
                        try {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
                        }catch (android.content.ActivityNotFoundException anfe) {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                        }
                    });
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // User cancelled the dialog
                        }
                    });
                    AlertDialog dialog = builder.create();
                    dialog.show();
                }catch (Exception err){
                    err.printStackTrace();
                }

            }
        }
    }

把它放在你有异常的地方。我希望它可以帮助@matdev。

【讨论】:

  • 能否请您包含查询 API 以了解已安装 Google Play 服务版本的代码?
  • 我收到错误 12500 是因为没有更新最新的播放服务版本。经过研究,我知道在我编写代码后播放服务版本已更新,我更新了播放服务版本并能够登录到应用程序。这是你问@matdev的类似问题
  • 您可以在遇到异常@matdev 的地方编写此代码
  • 您可以使用 GooglePlayServicesUtil.GOOGLE_PLAY_SERVICES_VERSION_CODE 查看已安装的 GOOGLE PLAY SERVICES 版本
  • 是的,但是您无法每次都跟踪生产中的更新版本。如果是这样,如果应用程序 google play 版本低于更新版本,您可以保持条件然后使用我发布的代码@matdev
猜你喜欢
  • 2013-07-25
  • 2013-02-15
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多