エラーが表示されるcom.Android.dex.DexException: Multiple dex files define Lcom/google/Android/gms/internal/zzau;
アプリを実行するとき、gradleファイルは
app.gradle
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:support-v4:21.0.3'
compile 'com.Android.support:appcompat-v7:21.0.3'
compile 'com.Android.support:recyclerview-v7:21.0.0'
compile 'com.Android.support:cardview-v7:21.0.0'
compile 'com.google.Android.gms:play-services:7.0.+'
compile 'com.Android.support:mediarouter-v7:21.0.3'
compile 'com.squareup:otto:1.3.5'
compile 'com.squareup.picasso:picasso:2.3.4'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.github.ksoichiro:Android-observablescrollview:1.4.0'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.facebook.Android:facebook-Android-sdk:4.1.0'
compile 'com.parse.bolts:bolts-Android:1.+'
compile 'com.edmodo:rangebar:1.0.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile project(':library_viewpager')
compile project(':androidHorizontalListView')
compile project(':CastCompanionLibrary')
compile project(':mobihelp_sdk_Android_v1.4')
compile fileTree(include: 'Parse-*.jar', dir: 'libs')
compile files('libs/Parse-1.9.2.jar')
compile files('libs/GoogleConversionTrackingSdk-2.2.2.jar')
}
CastCompanionLibrary
dependencies {
compile 'com.Android.support:appcompat-v7:22.+'
compile 'com.Android.support:mediarouter-v7:22.+'
compile 'com.google.Android.gms:play-services-cast:7.5.0'
}
どうすれば修正できますか?モジュールとアプリの両方でGoogle Playサービスを使用しているため、エラーが発生したと思います。しかし、バージョンは異なります。それが問題の原因ですか?
私は同様の問題を抱えていたので、あなたの質問は私の解決に役立ちました。おそらくあなたの問題を解決するのに役立つでしょう。問題はあなたが定義したことです:
dependencies {
...
compile 'com.google.Android.gms:play-services-cast:7.5.0'
}
そして
dependencies {
...
compile 'com.google.Android.gms:play-services:7.0.+'
...
}
Googleサービス7.5.0以降、プレイサービスの単一のモジュールを使用している場合、プレイサービス全体を依存関係として同時に使用することはできません。解決策は、パッケージ全体ではなく、必要なサービスのみを選択することです:例:
の代わりに
dependencies {
...
compile 'com.google.Android.gms:play-services:7.0.+'
...
}
つかいます
dependencies {
...
compile 'com.google.Android.gms:play-services-maps:7.0.+'
compile 'com.google.Android.gms:play-services-location:7.0.+'
compile 'com.google.Android.gms:play-services-gcm:7.0.+'
...
}
また、定かではありませんが、おそらく両方のgradle設定で同じバージョンのGoogleサービスを使用することをお勧めします。
Phonegap/cordovaを使用してビルドした後、同様の問題が発生しました。com.Android.dex.DexException:複数のdexファイルがLcom/google/Android/gms/internal/zzskを定義しています。
Build.gradle(module Android)を編集して修正しました。異なるバージョン番号(私の場合は8.4.0と9.2.1)でまったく同じバージョンを持つ必要がある2つのライブラリーがあったためです。
dependencies{
....
//make sure are both same version (8.4.0 or 9.2.1 in my case)
compile 'com.google.Android.gms:play-services-gcm:9.2.1'
// this is the one I changed: compile 'com.google.Android.gms:play-services-location:8.4.0'
compile 'com.google.Android.gms:play-services-location:9.2.1' // it was 8.4.0
....
}
Firebase Android SDKには独立したバージョン番号が追加され、より頻繁で柔軟な更新が可能になりました。
Firebaseのすべての依存関係を最新バージョンに更新します(2018年5月2日現在):
Firebase Core com.google.firebase:firebase-core:15.0.2
Ads com.google.firebase:firebase-ads:15.0.0
Analytics com.google.firebase:firebase-analytics:15.0.2
App Indexing com.google.firebase:firebase-appindexing:15.0.0
Authentication com.google.firebase:firebase-auth:15.1.0
Cloud Firestore com.google.firebase:firebase-firestore:16.0.0
Cloud Functions com.google.firebase:firebase-functions:15.0.0
Cloud Messaging com.google.firebase:firebase-messaging:15.0.2
Cloud Storage com.google.firebase:firebase-storage:15.0.2
Crash Reporting com.google.firebase:firebase-crash:15.0.2
Crashlytics com.crashlytics.sdk.Android:crashlytics:2.9.1
Invites com.google.firebase:firebase-invites:15.0.2
Performance Monitoring com.google.firebase:firebase-perf:15.1.0
Realtime Database com.google.firebase:firebase-database:15.0.0
Remote Config com.google.firebase:firebase-config:15.0.2
リリースノート: https://firebase.google.com/support/release-notes/Android
Firebaseをアプリに手動で追加した後、同じ問題が発生しました。
私にとって解決策は変化していました。
classpath 'com.google.gms:google-services:3.2.0'
に:
classpath 'com.google.gms:google-services:3.0.0'
ルートレベルでbuild.gradleファイル。
React-native-device-infoでこれが発生している場合、変更できるのは次のもののみです。
compile(project(':react-native-device-info'))
に
compile(project(':react-native-device-info')) {
exclude group: 'com.google.Android.gms'
}
ここで説明されているとおり: https://github.com/rebeccahughes/react-native-device-info/blob/81b0c20fab8a10ccf0341dbd6710d7a5915b06a6/README.md#troubleshooting
Firebaseの統合中に同じ問題が発生しました。私の場合、バージョンの不一致が原因でした。
アプリのgradleで、私は持っていました:
ext {
PLAY_SERVICES_VERSION = '10.2.0'
}
dependencies {
compile "com.google.Android.gms:play-services-maps:$PLAY_SERVICES_VERSION"
compile "com.google.Android.gms:play-services-location:$PLAY_SERVICES_VERSION"
compile "com.google.Android.gms:play-services-places:$PLAY_SERVICES_VERSION"
compile 'com.google.firebase:firebase-database:10.0.1'
}
firebase
依存関係は、Android studio。の統合されたfirebaseプラグインを介して追加されました。バージョンが一致したとき、機能しました。
私は最近この問題を抱えていました、理由はバージョンの違いでした:
'com.google.firebase:firebase-ads:9.0.6'
'com.google.firebase:firebase-crash:11.0.2'
そのため、同じバージョンを使用していることを確認してください。
私のプロジェクトはcordova ionic1プロジェクトです、私はこの問題を解決するために一晩中費やしました、これは私がfirebase依存関係とgoogleサービスを持っているためです: cordova-plugin-firebase\app-build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
// classpath 'com.google.gms:google-services:3.0.0'
// i changed the above line from 3.0.0 to 3.1.1
classpath 'com.google.gms:google-services:3.1.1'
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'me.leolin:ShortcutBadger:1.1.4@aar'
//compile 'com.google.firebase:firebase-crash:+'
// i changed the above line from + to 11.0.2
compile 'com.google.firebase:firebase-crash:11.0.2'
}
次に、このファイルに移動します:platforms\Android\project.propertiesもともと私はこれを持っていました
target=Android-26
Android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+
cordova.system.library.4=com.google.firebase:firebase-crash:+
cordova.system.library.5=com.google.firebase:firebase-config:+
cordova.system.library.6=com.Android.support:support-v4:24.1.1+
cordova.system.library.7=com.google.Android.gms:play-services-auth:11.+
cordova.system.library.8=com.google.Android.gms:play-services-identity:11.+
次に、特定の依存関係が必要なためGoogleサービスをコメントアウトし、firebaseとgmsのバージョンを同じバージョン番号11.0.2に設定したため、ファイルは次のようになります
target=Android-26
Android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
# cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.firebase:firebase-core:11.0.2
cordova.system.library.3=com.google.firebase:firebase-messaging:11.0.2
cordova.system.library.4=com.google.firebase:firebase-crash:11.0.2
cordova.system.library.5=com.google.firebase:firebase-config:11.0.2
cordova.system.library.6=com.Android.support:support-v4:24.1.1+
cordova.system.library.7=com.google.Android.gms:play-services-auth:11.0.2
cordova.system.library.8=com.google.Android.gms:play-services-identity:11.0.2
誰かが私のものと同じ問題を抱えていた場合、firebase-core依存関係を削除し、それは魅力のように機能しました。
dependencies{
implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.Android.gms:play-services-ads:15.0.0'
implementation 'com.google.firebase:firebase-crash:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'
}
に
dependencies{
implementation 'com.google.Android.gms:play-services-ads:15.0.0'
implementation 'com.google.firebase:firebase-crash:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'
}
私は同じ問題を抱えていましたが、私の原因はfirebase-uiの最新バージョン2.0.0でした。そこで、1.2.0にダウングレードし、プロジェクトレベルのbuild.gradleファイルに次の行を追加しました。
allprojects {
repositories {
jcenter()
// Add the following code
maven {
url 'https://maven.fabric.io/public'
}
}
}
Ionicでこの問題に他の誰かが出くわした場合、プラットフォームの削除と再追加は私のために働いた:
> ionic cordova rm platform Android
> ionic cordova add platform Android
Apache Cordova pluginsでこれを修正する方法を知りたい方のために、すべてのplugin.xml
ファイルに同じメジャーバージョンとマイナーバージョン、ただし最新リビジョンを含めることでこの問題を修正しました、 このような:
<framework src="com.google.firebase:firebase-auth:15.0.+" />
<framework src="com.google.firebase:firebase-messaging:15.0.+" />
上記の15.0.0
を使用すると、何らかの理由でcom.Android.dex.DexException
エラーが発生しました。リビジョン番号に+
(最新を意味する)を使用することで、すべてがcordova 7.1.0およびcordova-Android 6.3.0で完全に機能しました。
忘れずにプラグインからplugin.xml
を編集した後、Android platformを削除して再追加してください。そうしないと、変更はまったく適用されません。
また、次の場合に備えて、1つのgradleファイルのみがこれを適用していることを確認してください。
dependencies {
classpath 'com.Android.tools.build:gradle:+'
classpath 'com.google.gms:google-services:3.0.0'
}
私はこの問題を抱えていましたが、どのソリューションも機能しませんでした。私のために働いたのは、このプラグインを追加することでした
cordova plugin add cordova-Android-play-services-gradle-release --save
そして、/ platforms/Android/cordova-plugin-fcm /と/ platforms/Android/cordova-plugin-open /の両方でreplace
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
で:
ext.postBuildExtras = {
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
私もこの問題を抱えていました。この問題を解決するために多くの方法を試しました。私のために働いたのは、私のgradleから次の行を削除することでした。
compile 'com.google.firebase:firebase-core:16.0.3'
最初は両方ともfirebase-core
およびfirebase-ml-vision
(必要なのはfirebase-ml-vision
)次のように。
compile 'com.google.firebase:firebase-ml-vision:17.0.0'
compile 'com.google.firebase:firebase-core:16.0.3'
行を削除した後、次の警告が表示されました。
警告:Firebaseサービスが意図したとおりに機能するには、アプリのgradleファイルがcom.google.firebase:firebase-coreに依存している必要があります。
ただし、公式ドキュメントによると、コアの依存関係は存在しない可能性があるため( https://firebase.google.com/docs/ml-kit/Android/detect-faces )、無視できます。