error: package com.google.android.gcm does not exist - After migrating to Gradle

error: package com.google.android.gcm does not exist - After migrating to Gradle

我在没有 Gradle 的情况下使用 IntelliJ 开发的旧项目有问题。我想将它迁移到 Android Studio 和 Gradle,但我遇到了很多问题。由于该项目很旧,因此使用了旧的 Google Play Services 版本。在 Intellij 中,我刚刚将旧 gps 的 libproject 添加到依赖项 (google_play_services_5089000_r19) 并且一切正常。在 Android Studio 中,我设法通过将其添加为库模块并将 compile project(':segmentedradios') 添加为 gradle 依赖项来添加其他库,但我无法使 gps 库工作。我尝试将其添加为模块,但 Android Studio 在指向 libroject 库目录后显示 "no module selected"。我也尝试将其添加为 gradle 依赖项,但我不断收到如下错误:

error: package com.google.android.gcm does not exist
error: package com.google.android.maps does not exist
error: cannot find symbol variable GCMRegistrar

尽管我尝试了大约 10 种不同的解决方案,但该项目仍然无法正常工作。如何解决?

Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion "Google Inc.:Google APIs:18"
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "my_package.app_name"
        minSdkVersion 14
        targetSdkVersion 18
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile files('libs/libGoogleAnalyticsV2.jar')
    compile project(':segmentedradios')
    compile 'com.google.android.gms:play-services:5.0.89'
}

GCMRegistrar 不是 Google Play 服务的一部分,而是 now entirely deprecated gcm.jar 文件的一部分。

如果您想在迁移到 Google Play 服务的 GCM 实现之前暂时继续使用它,则需要将 gcm.jar 添加到您的依赖项中:

compile files('libs/gcm.jar')

您需要在应用程序的 build.gradle 文件中添加这两行:

dependencies {
    ...
    compile 'com.google.maps:google-maps-services:0.1.3'
    compile 'com.google.android.gms:play-services:6.5.87'
}

您可以通过此路径下载gcm.jar

http://www.java2s.com/Code/Jar/g/Downloadgcmjar.htm

或这个

http://www.java2s.com/Code/JarDownload/gcm/gcm.jar.zip

下载后解压,扩展名应该是.jar而不是.jar.zip

然后将其复制并粘贴到项目中的 libs 目录

然后右击gcm.jar然后点击add as lib

就是这样