我将我的应用程序与谷歌播放服务集成,但在5.X之前的旧版本中,它在将谷歌播放服务更新到8.4.0后崩溃

时间:2016-02-15 16:15:03

标签: android google-play-services

该应用程序在5.X之后的任何版本中成功启动,但在旧版本4.X中它崩溃并给我这个错误:

LastSpell

这是builde.gradle

       java.lang.NoClassDefFoundError: com.google.android.gms.R$string

build.gradle(application)

          apply plugin: 'com.android.application'

            android {
            compileSdkVersion 23
              buildToolsVersion '23.0.1'
                defaultConfig {
             applicationId "com.appsinnovate.hanorder"
       //        manifestPlaceholders =  
            [manifestApplicationId:"${applicationId}"]
              manifestPlaceholders = [manifestApplicationId          :  
                       "${applicationId}",
                                               onesignal_app_id               
                    : "xxxxxxxxxxxx",
                            onesignal_google_project_number:"xxxxxxxxx"]
                          minSdkVersion 15
                        targetSdkVersion 22
                         versionCode 1
                         versionName "1.0"
                       multiDexEnabled true
                           }
                     buildTypes {
                          release {
         minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),   
           'proguard-rules.pro'
              }
                    }
           productFlavors {
                  }
             useLibrary 'org.apache.http.legacy'
                 dexOptions {
              incremental true
              javaMaxHeapSize "4g"
                }
                }


               repositories {
              mavenCentral()
               }

               dependencies {
            compile fileTree(include: ['*.jar'], dir: 'libs')

           compile project(':facebook')

           compile 'com.android.support:appcompat-v7:23.1.1'
           compile 'com.android.support:design:23.1.1'
           compile 'com.android.support:palette-v7:23.1.1'
           compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
          compile 'com.android.support:support-v4:23.1.1'
          compile 'com.onesignal:OneSignal:1.+@aar'
          compile 'com.google.android.gms:play-services:8.4.0'
          compile 'com.google.android.gms:play-services-analytics:8.4.0'
          compile 'com.google.android.gms:play-services-ads:8.4.0'
          compile 'com.google.android.gms:play-services-identity:8.4.0'
           compile 'com.google.android.gms:play-services-gcm:8.4.0'
          compile 'com.android.support:multidex:1.0.0'

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

2 个答案:

答案 0 :(得分:0)

如果您尚未正确地将Google Play服务库添加到项目中,那么您将获得此信息。请务必仔细按照https://developers.google.com/android/guides/setup上的说明将库添加到项目中。然后确保您的所有构建工具和Google存储库包都是最新的,如我在此处的回答中所述:Could not find com.google.android.gms:play-services-analytics:8.1.0

一旦你更新了所有这些,它应该工作。我也注意到你的google play包看起来已经过时了。你有2.0.0版。当前版本应为8.4.0您的参与中的行应为compile 'com.google.android.gms:play-services:8.4.0'

此外,您似乎在Project gradle文件中有这个。它应该放在你的MODULE gradle文件中。

<强>更新

您应该将您的gradle版本更改为classpath 'com.android.tools.build:gradle:2.0.0-alpha6'我在原始阅读中错过了此内容,但这可以解决您的问题。

答案 1 :(得分:0)

我通过删除

解决了这个问题
       compile 'com.google.android.gms:play-services:8.4.0'

因为它需要使用multiDexing,因为大小超过65K

所以我从builde.gradle中删除了

        dexOptions {
          incremental true
          javaMaxHeapSize "4g"
            }

        ......
                   multiDexEnabled true
        ......
                   compile 'com.android.support:multidex:1.0.0'

我使用了我需要的库

       compile 'com.google.android.gms:play-services-analytics:8.4.0'
      compile 'com.google.android.gms:play-services-ads:8.4.0'
      compile 'com.google.android.gms:play-services-identity:8.4.0'
       compile 'com.google.android.gms:play-services-gcm:8.4.0'