google gms:与firebase发生服务冲突

时间:2017-02-03 06:13:24

标签: android google-maps android-studio firebase firebase-cloud-messaging

我正在尝试在我已经使用谷歌地图的项目中添加firebase-messaging。所以当我添加firebase dependecy

compile 'com.google.firebase:firebase-messaging:10.0.1'

我收到了以下错误。

  

错误:.dex文件中的方法引用数不能超过64K。   了解如何在https://developer.android.com/tools/building/multidex.html解决此问题   错误:任务':app:transformClassesWithDexForDebug'执行失败。   com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:java.lang.UnsupportedOperationException

我该如何解决这个问题 这是我的build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.edesign.astutesol.sallaticustomerapp"
    minSdkVersion 19
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.1.1'
compile 'com.mcxiaoke.volley:library:1.0.15'
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.google.android.gms:play-services-auth:10.0.1'
apply plugin: 'com.google.gms.google-services'
compile 'com.google.firebase:firebase-messaging:10.0.1'

compile 'com.android.support:cardview-v7:25.+'
compile 'org.lucasr.twowayview:twowayview:0.1.4'

}

这些是谷歌依赖

compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.google.android.gms:play-services-auth:10.0.1'
apply plugin: 'com.google.gms.google-services'
compile 'com.google.firebase:firebase-messaging:10.0.1'

3 个答案:

答案 0 :(得分:2)

在默认配置中启用multidex。

defaultConfig {
    applicationId "com.edesign.astutesol.sallaticustomerapp"
    minSdkVersion 19
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

答案 1 :(得分:2)

如果启用multidex支持不起作用,可能是因为您可能已为应用定义了自定义应用程序类。清单文件中的应用程序名称是什么?如果您通过扩展应用程序(例如,集成ACRA或谷歌分析)来定义自定义应用程序类,那么您将必须覆盖attachBaseContext方法。

@Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
    }

答案 2 :(得分:1)

简短回答:删除compile 'com.google.android.gms:play-services:10.0.1'

您的 build.gradle

中不应包含以下行
compile 'com.google.android.gms:play-services:10.0.1'

该行将包含您应用中的所有Google库,这将超出方法限制(您报告的错误),并且会使您的应用无法获益。

您应该只包含您需要的子库。

示例:

compile 'com.google.android.gms:play-services-auth:10.0.1

没问题,因为你只包含了库的 -auth 部分。