错误:包com.google.android.gcm不存在 - 迁移到Gradle后

时间:2015-03-09 22:25:54

标签: android android-gradle google-play-services android-build

我遇到了一个在没有Gradle的IntelliJ中开发的旧项目的问题。我想将它迁移到Android Studio和Gradle,但我遇到了很多问题。由于该项目已经过时,因此使用了旧的Google Play服务版本。在Intellij中,我刚刚将旧gps的libproject添加到依赖项(google_play_services_5089000_r19),一切正常。在Android Studio中,我设法通过将其添加为库模块并添加compile project(':segmentedradios')作为gradle依赖项来添加其他库,但我无法使gps库工作。我曾尝试将其添加为模块,但Android Studio在指向libroject库的目录后表示“未选择模块”。我也尝试将其添加为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种不同的解决方案,但该项目仍无效。如何解决?

摇篮:

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'
}

3 个答案:

答案 0 :(得分:25)

GCMRegistrar不属于Google Play服务,但属于now entirely deprecated gcm.jar文件。

如果您希望暂时继续使用它,则需要向依赖项添加gcm.jar,直到您迁移到Google Play服务的GCM实施:

compile files('libs/gcm.jar')

答案 1 :(得分:2)

您可以通过此路径下载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

就是这样

答案 2 :(得分:1)

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

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