无法解决 com.google.android.gcm.GCMBaseIntentService; Android studio

3

编辑:我解决了这个问题:) 这个错误的原因:

  1. 在实现GCM客户端的教程中,有一个链接可以下载演示的完整源代码。
  2. 为了参考下载并在build.gradle中添加google_play_service库。
  3. 进行了一些推荐的更改,如SENDER_ID,SERVER_URL等。
  4. 将项目与gradle同步后出现了这个错误。

我是如何解决的!

  1. 经过大量的谷歌搜索,我发现这个类不在google_play_service库中,而是在已弃用的gcm.jar中。 我不知道为什么谷歌会给出旧代码的链接,并在文档中解释最新代码。
  2. 然后我包括了gcm.jar
  3. 错误消失了,得到了推送通知:)

希望这对遇到这个问题的人有所帮助!

我的旧问题

我是android studio的新手。我不理解build.gradle。今天我正在按照https://developer.android.com/google/gcm/client.html上给出的指示实现gcm-demo-client 但是当我从建议的开源代码中导入时,我遇到了以下错误。

/home/shani/Desktop/gcm-76908409d9d5/samples/gcm-demo-client1/app/src/main/java/com/google/android/gcm/demo/app/GCMIntentService.java:28: error: cannot find symbol
import com.google.android.gcm.GCMBaseIntentService;
                             ^
  symbol:   class GCMBaseIntentService
  location: package com.google.android.gcm

此外还有其他25个错误。在谷歌上搜索后,我发现这是因为我没有在build.gradle中添加google play服务库。
然后我添加了库: 以下是我的build.gradle文件
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.google.android.gcm.demo.app"
        minSdkVersion 8
        targetSdkVersion 16
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        dependencies {
            compile "com.google.android.gms:play-services:3.1.+"
        }
    }
}

现在,当我点击同步链接时,我得到了“构建成功”的提示。但是,当我尝试在真实设备上运行时,会出现上面的错误。我不知道我做错了什么。请给我提供解决方案,我已经花了两天时间实现GCM演示应用程序。


1
嗨,感谢您分享所获得的知识。如果您的问题已解决,请考虑添加答案并接受它,而不是编辑问题。这样可以使其他用户更容易看到。 - T3 H40
@程序员 你应该将你的解决方案发布为答案并接受你自己的答案。 - Mariano
4个回答

4
如果您使用最新版本(7.0.0),就会出现这种情况。它们将Google Play服务进一步切分,因为方法计数有一个上限(65536)。
无论如何,
compile 'com.google.android.gms:play-services-base:6.5.87'

这适用于指南中提到的 GCM 类。

但也可以通过升级到最新版本来使用。

compile 'com.google.android.gms:play-services-gcm:7.0.0'

3

我认为你的问题是gradle没有下载你的依赖。我曾经遇到过同样的问题,但在将缓存无效并重新启动Android Studio后,我解决了这个问题。点击文件>使缓存无效/重启


0

您正在使用过时的Google Play服务,请在gradle文件中使用以下行,然后再次使用gradle同步项目。

dependencies {
 compile 'com.google.android.gms:play-services:7.0.0'
}

这肯定会消除你的错误。


1
实际上,对我来说,这个错误是由于从compile 'com.google.android.gms:play-services-base:6.5.87'更新到7.0.0引起的。 - EpicPandaForce

0
使用这个谷歌服务,它可以正常运行。
compile 'com.google.android.gms:play-services:8.1.0'

之前的回答中不已经涵盖了这个问题吗? - Mariano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接