我正在尝试在我已经使用谷歌地图的项目中添加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'
答案 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 部分。