首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android 3上的multidex错误

android 3上的multidex错误
EN

Stack Overflow用户
提问于 2017-11-16 16:11:56
回答 2查看 1.3K关注 0票数 0

在升级到AS 3之前,我在我的项目中使用了multidex,在升级之后,每次我尝试在设备上运行应用程序,甚至生成APK时,它都会出现这个错误。

错误:将字节码转换为dex:原因: Lcom/google/android/gms/auth/api/signin/internal/zzp;:多个dex文件定义com.android.dex.DexException Error:com.android.dex.DexException:多个dex文件定义Lcom/google/android/gms/auth/api/signin/internal/zzp;错误:在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)错误:在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)错误:在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)错误:在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)错误: at com.android.dx.merge.DexMerger.merge(DexMerger.java:错误:在com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)错误:在com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)错误:在java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)错误:在java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)错误: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)错误:在java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)错误:在java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

请不要认为我所做的只是更新AS和gradle plguin到3.0.0。我试着回到2.3.3,但它告诉我这个项目是不兼容的。

这是我的Multidex代码:

代码语言:javascript
复制
android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "net.mohammed.billmob"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

我的申请课:

代码语言:javascript
复制
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);


    }

    @Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
    }
}

这些是应用程序的依赖关系:

代码语言:javascript
复制
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'
    })



    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true
    }


    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:mediarouter-v7:26.1.0'

   // compile 'com.google.android.gms:play-services:11.6.0'
    compile 'com.google.android.gms:play-services-location:11.6.0'

    compile 'com.google.firebase:firebase-core:11.6.0'
    compile 'com.google.firebase:firebase-crash:11.6.0'
    compile 'com.google.firebase:firebase-auth:11.6.0'
    compile 'com.google.firebase:firebase-messaging:11.6.0'
    compile 'com.google.firebase:firebase-database:11.6.0'
    compile 'com.google.firebase:firebase-perf:11.6.0'

    compile 'com.karumi:dexter:4.1.0'

    compile 'com.firebaseui:firebase-ui-auth:3.1.0'

    compile 'com.facebook.android:facebook-android-sdk:4.28.0'
    compile 'com.android.support:design:26.1.0'
    compile 'com.github.bumptech.glide:glide:4.0.0'
    compile 'com.android.support:support-v4:26.1.0'

    compile 'com.android.support:multidex:1.0.1'
/*    compile 'com.android.support:multidex:1.0.2'
    androidTestCompile 'com.android.support:multidex:1.0.2'
    androidTestCompile 'com.android.support:multidex-instrumentation:1.0.2'*/


    annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
    testCompile 'junit:junit:4.12'
}
EN

回答 2

Stack Overflow用户

发布于 2017-11-16 18:22:09

Sol通过将firebase和google依赖项降级到11.4.2来解决这个问题,以匹配这里提供的firebase版本:https://github.com/firebase/FirebaseUI-Android

票数 0
EN

Stack Overflow用户

发布于 2017-11-16 18:35:50

试一试:

  1. 启用multiDex:
代码语言:javascript
复制
android {
    defaultConfig {
        ...
        multiDexEnabled true
    }
    ...
} 

更多信息:

https://developer.android.com/studio/build/multidex.html

  1. 配置gradle插件和gradle版本:

//gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip // build.gradle类路径‘com.android.tools.build:gradle:3.0’

更多信息:

https://developer.android.com/studio/releases/gradle-plugin.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47334315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档