更新到新的Firebase版本后,我遇到以下错误。我一直在寻找,显然我必须删除一些jar文件,但我似乎无法理解删除这些导致冲突的文件的位置。
错误如下。
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzml;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmm;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmn;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmo;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmp;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmq;
Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmr;
Error:7 errors; aborting
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:返回码1用于dex进程
Gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
preDexLibraries = false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.loopj.android:android-async-http:1.4.9'
///firebase////
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-storage:9.4.0'
compile 'com.google.firebase:firebase-crash:9.4.0'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.firebase:firebase-invites:9.4.0'
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
//# Single target that includes all FirebaseUI libraries
compile 'com.firebaseui:firebase-ui:0.4.0'
compile 'joda-time:joda-time:2.9.4'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'org.apache.commons:commons-lang3:3.4'
//compile 'io.github.rockerhieu:emojicon:1.4.1'
compile 'com.github.lzyzsd:circleprogress:1.1.0@aar'
}
apply plugin: 'com.google.gms.google-services'
这是Project Gradle。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
答案 0 :(得分:1)
答案是 app.gradle 的正确依赖关系是:
category date number
0 Cat1 2010-03-01 1
1 Cat2 2010-09-01 1
2 Cat3 2010-10-01 1
3 Cat4 2010-12-01 1
4 Cat5 2012-04-01 1
5 Cat2 2013-02-01 1
6 Cat3 2013-07-01 1
7 Cat4 2013-11-01 2
8 Cat5 2014-11-01 5
9 Cat2 2015-01-01 1
10 Cat3 2015-03-01 1
来自firebase的所有服务都需要这种依赖关系,这一个: compile' com.google.android.gms:play-services-appindexing:9.4.0' ,我想只是添加应用程序索引gms服务,您需要所有包。试试这个变化并告诉我这个,问候!
答案 1 :(得分:1)
看到你有很多依赖项,我认为这可能与MultiDex问题有关,这意味着你的项目有超过64K的方法。因此,您需要启用MultiDex
才能拥有超过64k
您可以通过将以下内容添加到模块级build.gradle
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
然后,如果您已有应用程序类,则创建一个MultiDexApplication
类或从MutliDexApplication
扩展。
不要忘记将其添加到Manifest
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>