2017-04-18 106 views
-1

我是android新手。我正在构建一个需要Map以及FCM的应用程序。所以要自定义标记并设置纬度和语言我正在使用gms。无法添加gms和FCM依赖关系

这是我的应用程序级gradle构建文件。

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion "21.1.2" 

defaultConfig { 
    applicationId "com.xxx.xxx" 
    minSdkVersion 18 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 
packagingOptions { 
    exclude 'META-INF/ASL2.0' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/license.txt' 
    exclude 'META-INF/NOTICE' 
    exclude 'META-INF/notice.txt' 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.google.android.gms:play-services:9.0.0' 
compile 'com.google.firebase:firebase-messaging:9.2.0'     
} 

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

以下是我的项目级gradle构建文件。

buildscript { 
repositories { 
    jcenter() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:1.1.0' 
    classpath 'com.google.gms:google-services:3.0.0' 
} 
} 

allprojects { 
    repositories { 
     jcenter() 
} 
} 

因此,当我在应用程序级gradle文件中同时包含以下依赖项时。

compile 'com.google.android.gms:play-services:9.0.0' 
compile 'com.google.firebase:firebase-messaging:9.2.0' 

运行应用程序时出现以下错误。

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/common/internal/zzab; 
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 
at com.android.dx.command.dexer.Main.run(Main.java:246) 
at com.android.dx.command.dexer.Main.main(Main.java:215) 
at com.android.dx.command.Main.main(Main.java:106) 

Error:Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: 
org.gradle.process.internal.ExecException: Process 'command 'C:\Program 
Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2 
Information:BUILD FAILED 
Information:Total time: 20.671 secs 
Information:1 error 
Information:0 warnings 
Information:See complete output in console 

但是,当我删除了firebase消息依赖它的工作。请帮忙。在此先感谢

+0

使用同一版本都依赖9.2.0 –

+0

感谢@DivyeshPatel你的答案。 – Praveenupadrasta

回答

0

在您的gradle中使用相同版本的Gmsfirebase依赖关系。

由于您只使用Google地图,因此无需导入整个图库,只使用地图选择部分。

com.google.firebase:firebase-messaging:10.2.1 
com.google.android.gms:play-services-maps:10.2.1 
在你的代码

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:24.2.1' 
com.google.firebase:firebase-messaging:10.2.1 
com.google.android.gms:play-services-maps:10.2.1     
} 
+0

会试着让你知道。感谢您的快速回复。 – Praveenupadrasta

+0

它的工作。非常感谢。 – Praveenupadrasta

+0

@Praveenupadrasta欢迎您...标记答案是正确的,如果有帮助,.. ..谢谢 – rafsanahmad007