Ошибка кнопки входа в Google на Android

Я пытаюсь включить кнопку входа в Google в свое приложение для Android, выполнив следующие действия:

1) Включая кнопку:

<com.google.android.gms.common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

2) Редактирование файла сборки верхнего уровня

classpath 'com.google.gms:google-services:1.5.0-beta2'

3) Редактирование файла сборки на уровне приложения

apply plugin: 'com.google.gms.google-services'

Теперь я получаю сообщение об ошибке в пользовательском интерфейсе кнопки как

Цитата. Не удалось найти следующие классы: – com.google.android.gms.common.SignInButton (исправить путь сборки, создать класс).

Пожалуйста, помогите мне решить эту проблему!


person Santhosh Kumar    schedule 26.01.2016    source источник
comment
Вам необходимо включить сервисы Google Play в файл приложения Gradle.   -  person Shmuel    schedule 26.01.2016
comment
применить плагин: «com.google.gms.google-services» достаточно? @Шмуэль   -  person Santhosh Kumar    schedule 26.01.2016


Ответы (2)


Прежде всего, нам нужно уточнить, что у вас должно быть 2 файла build.gradle. Один из них — файл уровня проекта, а другой — файл Gradle уровня приложения: < img src="https://i.stack.imgur.com/1SZhx.png" alt="файлы gradle">

Эти файлы должны выглядеть так:

Project: StackOverlfow build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
        classpath 'com.google.gms:google-services:1.5.0-beta2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Module: app файл градиента:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.package"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services-auth:8.4.0'
}

Если у вас не установлены сервисы Google Play, выполните следующие действия:

  1. Перейдите в Android Studio -> Настройки -> Внешний вид и поведение -> Системные настройки -> Android SDK. менеджер SDK
  2. В нижней части вы увидите «Запустить автономный диспетчер SDK».
  3. Нажмите на нее, и у вас откроется отдельное окно SDK Manager.
  4. Прокрутите вниз до «Дополнительно», выберите «Сервисы Google Play» и нажмите «Обновить». GPS

Это установит правильные пакеты игровых сервисов. После этого вернитесь в Android Studio и повторно синхронизируйте файл Gradle.

person Mike    schedule 26.01.2016
comment
Похоже, вам также нужно обновить Сервисы Google Play из диспетчера SDK. Перейдите в Android Studio -> Настройки -> Внешний вид и поведение -> Системные настройки -> Android SDK. В нижней части вы увидите Launch Standalone SDK Manager. Нажмите на нее, и у вас откроется отдельное окно SDK Manager. Прокрутите вниз до «Дополнительно», выберите «Сервисы Google Play» и нажмите «Обновить». - person Mike; 26.01.2016
comment
Плагин, который вы используете, неправильный. Пересмотрите детали моего ответа и попробуйте применить плагин: «com.google.gms.google-services», где у вас есть плагин: «com.android.application». - person Mike; 26.01.2016
comment
Только та же ревизия 29 :( - person Santhosh Kumar; 26.01.2016
comment
Я использовал оба: применить плагин: «com.android.application» применить плагин: «com.google.gms.google-services» - person Santhosh Kumar; 26.01.2016
comment
Пожалуйста, проверьте обновленный ответ. Вы должны быть готовы пойти с этим. - person Mike; 26.01.2016
comment
Сборка 1.5beta2 вызывает у него проблемы. Ему нужно использовать 2.0-альфа-сборку плагина gradle. - person Shmuel; 26.01.2016
comment
Я только что создал рабочий пример с 1.5beta2 и установкой, которую только что добавил. Я что-то упускаю? - person Mike; 26.01.2016
comment
Эта ошибка, которую он получил, Error:Execution failed for task ':app:processDebugGoogleServices'. › Устраните конфликт версий, либо обновив версию плагина google-services (информация о последней версии доступна на странице bintray.com/android/android-tools/…), либо обновив версию com.google.android.gms. до 8.3.0. - исправлено обновлением плагина gradle. Я не знаю, почему ваша сборка работает, я просто комментировал, что столкнулся с проблемой, с которой он столкнулся, и исправил ее таким образом. - person Shmuel; 27.01.2016
comment
Я думаю, что Шмуэль прав? Я обновил код, и ему нужен gradle 2.10, поэтому я загружаю его сейчас. - person Santhosh Kumar; 27.01.2016
comment
Попробуйте, обязательно! Возможно, это так, но, как я уже сказал, с настройкой gradle, которая у меня есть в ответе, мне удалось запустить приложение и использовать SignInButton - person Mike; 27.01.2016
comment
Теперь новая ошибка Не удалось создать экземпляры следующих классов: - com.google.android.gms.common.SignInButton - person Santhosh Kumar; 27.01.2016

Взгляните на мой вопрос здесь - Android - Google Login and Play Services несовместимость версий

Тебе нужно:

classpath 'com.android.tools.build:gradle:2.0.0-alpha5'
classpath 'com.google.gms:google-services:2.0.0-alpha5'

а также

compile 'com.google.android.gms:play-services-auth:8.4.0'

Кроме того, мне был полезен образец Google https://github.com/googlesamples/google-services/blob/master/android/appinvites/app/build.gradle

person Shmuel    schedule 26.01.2016