2016-07-07 4 views
0

Problem: Wenn ich die folgenden Abhängigkeiten in build.gradle hinzufüge, erhalte ich einen multiDex-Fehler. Ich weiß, dass dies passiert, wenn ich eine unnötige Abhängigkeit habe, aber ich kann es nicht lösen. Ich mache das für eine einzige Push-Benachrichtigung in meiner App.MultiDex-Fehler beim Hinzufügen der Abhängigkeit für gcm und onesignal push notification erhalten

Ich habe folgende Abhängigkeiten zu meiner build.gradle Datei:

compile 'com.google.android.gms:play-services:8.1.0' 
compile 'com.google.android.gms:play-services-ads:8.1.0' 
compile 'com.google.android.gms:play-services-identity:8.1.0' 
compile 'com.google.android.gms:play-services-gcm:8.1.0' 
compile 'com.onesignal:OneSignal:[email protected]' 
compile 'com.google.android.gms:play-services-analytics:8.1.0' 
compile 'com.google.android.gms:play-services-location:8.1.0' 

Vor dieser meine app fein arbeitet. Alle Ddie dependecies in meiner gradle Datei sind unten aufgeführt (einschließlich der oben Abhängigkeiten) aufgelistet

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile files('libs/android-support-v4.jar') 
    compile files('libs/Parse-1.3.0.jar') 
    compile files('libs/signpost-commonshttp4-1.2.1.2.jar') 
    compile files('libs/signpost-core-1.2.1.2.jar') 
    compile files('libs/signpost-jetty6-1.2.1.2.jar') 
    testCompile 'junit:junit:4.12' 
    compile files('libs/volley.jar') 
    compile 'com.google.android.gms:play-services:8.1.0' 
    compile 'com.google.android.gms:play-services-ads:8.1.0' 
    compile 'com.google.android.gms:play-services-identity:8.1.0' 
    compile 'com.google.android.gms:play-services-gcm:8.1.0' 
    compile 'com.onesignal:OneSignal:[email protected]' 
    compile 'com.google.android.gms:play-services-analytics:8.1.0' 
    compile 'com.google.android.gms:play-services-location:8.1.0' 
} 

Jede Hilfe, wie dies zu beheben?

+1

kompilieren 'com.google.android.gms: play-services: 8.1.0' Benötigen Sie eine Vollversion der Spieldienste? Können Sie versuchen, es zu entfernen (es könnte auch die Notwendigkeit von Multidex insgesamt reduzieren)? – Ramesh

+0

versuchen Sie es. Ich werde Sie in einer Minute wissen –

+0

Sure lassen Sie mich wissen – Ramesh

Antwort

1

Wenn Ihre Absicht nur ist Gcm hinzuzufügen. Sie brauchen diese vielen Abhängigkeiten nicht. Vor allem Google Play-Dienste Vollversion.

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

Es ist immer gut kleinere Abhängigkeiten hinzuzufügen, die Ihre usecase passt wie

compile 'com.google.android.gms:play-services-gcm:8.1.0' 

Wenn Sie noch immer noch mehr als 65k Grenze und multidex benötigen, können Sie in Ihrem Modul gradle Datei aktivieren.

multiDexEnabled true 

in Ihrer Modul-Grandle-Datei in defaultConfig.

Zusammen mit diesem, ist es besser ermöglichen proguard folgende Attribute zu halten und um sicherzustellen, dass Sie die apk Größe

minifyEnabled true 
shrinkResources true 

Hinweis aufblasen nicht, dass die Aktivierung proguard seine eigenen Probleme hat, die Sie Deal mit von Sorgfältige Überprüfung von proguard-rules.pro

+0

Stimmen Sie völlig mit @Ramesh überein, verwenden Sie nur, was Sie brauchen, können Sie mehr Informationen über die öffentliche Dokumentation über * how to Einrichtung von Google Play-Diensten * https://developers.google.com/android/guides/setup erhalten –