无法解析com.google.android.gcm.GCMBaseIntentService; Android工作室

时间:2015-03-21 13:26:56

标签: android client google-cloud-messaging google-play-services build.gradle

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

  1. 在实施GCM客户端教程中,有link下载演示的完整源代码。
  2. 已下载以供参考,在build.gradle中添加了google_play_service库。
  3. 做了一些推荐的更改,例如SENDER_ID,SERVER_URL,..等等
  4. 将项目与gradle同步并收到此错误。
  5. 我是如何解决的!

    1. 经过很多谷歌我发现这个类不在google_play_service库中,但它在gcm.jar中,现在已弃用。 我不知道为什么谷歌给出了旧代码的链接并解释了文档中的最新代码。
    2. 然后我加入了gcm.jar
    3. 错误消失了,得到推送通知:)
    4. 希望这会对陷入困境的人有所帮助!

      我的老问题

      我是android studio的新手。我不懂build.gradle。今天我按照这里给出的说明实现了gcm-demo-client https://developer.android.com/google/gcm/client.html 但是当我从建议的open source code导入它时,我得到了以下错误。

      /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个错误。在Google上进行一些搜索之后,我发现这是因为我没有在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.+"
              }
          }
      }
      

      现在,当我点击同步链接时,我获得了Build Success。但是当我尝试在真实设备上运行时,错误就会出现。我不知道我做错了什么。请给我解决方案,我真的花了两天时间实现gcm演示应用程序。

4 个答案:

答案 0 :(得分:4)

如果您使用最新的7.0.0版本,则会发生这种情况。由于方法计数的上限(65536),他们将谷歌播放服务的分数比6.5更进一步。

反正,

compile 'com.google.android.gms:play-services-base:6.5.87'

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

但它也适用于更新到最新的

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

答案 1 :(得分:3)

我认为您的问题是gradle没有下载您的依赖项。我遇到了同样的问题但是当我无效缓存并重新启动android studio时我解决了它。点击文件>使缓存/重启无效

答案 2 :(得分:0)

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

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

这肯定会消除您的错误。

答案 3 :(得分:0)

使用此Google Play服务,它正在运作

compile 'com.google.android.gms:play-services:8.1.0'