错误:在Android Gradle文件

时间:2016-12-21 04:59:13

标签: android gradle firebase firebase-cloud-messaging

1)当我用Google地图编译Firebase时,它不起作用。

2)如果我只使用Firebase或Google API,那么它对我有用。

3)但我想同时使用这两件事。

4)对于我正在使用的Firebase:

    compile 'com.google.firebase:firebase-messaging:10.0.1'
    compile 'com.google.firebase:firebase-core:10.0.1'
}
apply plugin: 'com.google.gms.google-services'

5)对于谷歌地图

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

6)它给了我错误:

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/bin/java'' finished with non-zero exit value 3

请在下面查看我的Gradle文件:

    apply plugin: 'com.android.application'

android {

    compileSdkVersion 25
    buildToolsVersion "25.0.2"


    defaultConfig {

        applicationId "com.xyz.ProjectName"
        minSdkVersion 16
        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:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'com.android.support:recyclerview-v7:25.1.0'

    // ImageLoader
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

    // Map
    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.google.maps.android:android-maps-utils:0.3+'

    // Spinner
    compile 'com.jaredrummler:material-spinner:1.1.0'

    // Volley
    compile 'com.android.volley:volley:1.0.0'

    //Firebase
    compile 'com.google.firebase:firebase-messaging:10.0.1'
    compile 'com.google.firebase:firebase-core:10.0.1'

    //CropImage
    compile project(':CropImage')

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

4 个答案:

答案 0 :(得分:3)

您可以按照Naitik的回答中的建议为Multidex配置应用,或者仅包含您需要的Google Play API。此API列表位于Play Services Setup Guide表1 中。如果您只需要地图,请进行此更改:

// Map
//compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.google.android.gms:play-services-maps:10.0.1'
compile 'com.google.maps.android:android-maps-utils:0.3+'

注意:如果您选择Multidex,则还必须更新清单中Application类的名称,为described here

答案 1 :(得分:0)

您已使用以下代码启用了muldidex选项。

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 25
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

答案 2 :(得分:0)

只需更改

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

"provided fileTree(dir: 'libs', include: ['*.jar'])".

它解决了我的问题。

答案 3 :(得分:0)

(这个答案并非针对OP,而是针对任何有类似问题的人。)

我遇到了同样的问题并且感到困惑,因为我认为我正确设置了依赖项,但Android Studio仍然会抛出错误。

好吧,在更改了依赖项的顺序(Firebase之前的Play服务)后,问题就消失了!

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

    compile 'com.google.android.gms:play-services-maps:11.0.4'
    compile 'com.google.firebase:firebase-messaging:10.0.1'
}

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