我遇到了这个问题,你能帮我吗:
Error:Error converting bytecode to dex:
原因:com.android.dex.DexException:多个 dex 文件定义了 Lcom/google/android/gms/auth/api/signin/internal/zzf; ...
失败:生成失败,出现异常。
- 出了什么问题: 任务":app:transformClassesWithDexForDebug"的执行失败。
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: 使用主类 com.android.dx.command.Main 执行带有参数 {--dex --num-threads=4 的 Java 进程时出错 --output D:\Projectos\Chat_Final\app\build\intermediates\transforms\dex\debug\folder\1000\1f\main D:\Projectos\Chat_Final\app\build\intermediates\pre-dexed\debug\classes_9fd79174a0a6dc23209652a8a58b3e02e9146491.jar D:\Projectos\Chat_Final\app\build\intermediates\pre-dexed\debug\bolts-applinks-1.4.0_7536087ced7b51cacc52bdfc4ca05ab61d61e0c3.jar D:\Projectos\Chat_Final\app\build\intermediates\pre-dexed\debug\jackson-databind-2.2.2_c79be971c56bd1cdc38488184cf71a5146b761ff.jar D:\Projectos\Chat_Final\app\build\intermediates\pre-dexed\debug\classes_3b9a81b892f55e63da37657bf33b2ce2fe9ca8b0.jar
My build.glade
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
}
/* 包装选项 { 排除"元信息/许可证" 如果您使用的是 Firebase 包括以下行 排除"META-INF/LICENSE-FIREBASE.txt 排除"元信息/通知" }*/
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.android.support:cardview-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
//compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.google.firebase:firebase-core:10.2.6'
compile 'com.google.firebase:firebase-auth:10.2.6'
compile 'com.google.firebase:firebase-database:10.2.6'
compile 'com.google.firebase:firebase-storage:10.2.6'
compile 'com.google.firebase:firebase-messaging:10.2.6'
compile 'com.firebaseui:firebase-ui-database:0.6.0'
compile 'com.firebaseui:firebase-ui-storage:0.6.0'
compile 'com.firebaseui:firebase-ui-auth:0.6.0'
//compile 'com.android.support:multidex:1.0.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
//Notification
compile 'com.onesignal:OneSignal:[3.5.3,4.0.0)'
compile 'com.google.android.gms:play-services-gcm:10.2.6'
compile 'com.google.android.gms:play-services-location:10.2.6'
}
应用插件:"com.google.gms.google-services">
如果minSdkVersion设置为21 或更高版本,则只需在应用级build.gradle
文件中将multiDexEnabled设置为true,如下所示:
android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 25
multiDexEnabled true
}
...
}
但是,如果您的minSdkVersion设置为20 或更低,则必须按如下方式使用 multidex 支持库:
修改应用级 build.gradle 文件以启用 multidex,并将 multidex 库添加为依赖项,如下所示:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 25
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
创建一个应用程序类,如下所示:
public class MyApplication extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
在清单中添加此应用程序类。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your package name">
<application
android:name=".MyApplication" >
...
</application>
</manifest>
您也可以查看此链接:
https://developer.android.com/studio/build/multidex.html