2016-07-07 8 views
0

問題:以下の依存関係をbuild.gradleに追加すると、multiDexエラーが発生します。私は不必要な依存関係がある場合にこれが起こることを知っていますが、私はそれを並べ替えることができません。私は私のアプリで1回のプッシュ通知のためにこれをやっています。gcmとonesignalプッシュ通知の依存関係を追加する際にMultiDexエラーが発生する

私は私のbuild.gradleファイルに依存関係を、次の追加:この私のアプリが正常に動作して前に

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' 

。私のGradleファイルに間に合わないの依存性のすべてが(上記の依存関係を含む)を以下に列挙されている

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' 
} 

この問題を解決する方法上の任意のヘルプ?

+1

コンパイル 'com.google.android.gms:play-services:8.1.0' フルバージョンの再生サービスが必要ですか?あなたはそれを削除しようとすることができます(それはまったくmultidexの必要性を減らすかもしれません)? – Ramesh

+0

を試してみてください。 –

+0

確かに教えてください – Ramesh

答えて

1

あなたの意図はただGCMを追加する場合。それらの多くの依存関係は必要ありません。特にGoogle Playサービスのフルバージョン。

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

それでもまだ65K制限を超えるとmultidexを必要としている場合、あなたはモジュールのGradleファイルで有効にする必要があり、そのような

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

としてあなたのユースケースに収まる小さな依存関係を追加するために、そのは常に良いです。

multiDexEnabled true 

defaultConfigのモジュールgrandleファイルにあります。これに伴い

、そのより良いだけでなく、次の属性を維持するためには、ProGuardを有効にすると、あなたはProGuardのを有効にすると、あなたがすることによってとの契約を持っているであろう、独自の問題を抱えている

minifyEnabled true 
shrinkResources true 

。なおAPKのサイズを膨らまいけないことを確認しますproguard-rules.proを慎重に確認する

+0

@Rameshと完全に同意します。必要なもののみを使用してください。 Google Playサービスの設定方法については、公開されているドキュメントの詳細をご覧ください。* https://developers.google.com/android/guides/setup –

関連する問題