【问题标题】:Unable to merge Dex in Android Studio 3.0无法在 Android Studio 3.0 中合并 Dex
【发布时间】:2017-11-10 15:36:47
【问题描述】:

我是 Android Studio 的初学者。

每次我尝试在我的 Google Tango 平板电脑上运行我的应用时,都会出现以下错误:

Execution failed for task:':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchibeMergerException: Unable to merge dex

这是我的应用模块 build.gradle 文件...

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.cs15yyo.myfyp"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        //multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.google.tango:sdk-base:1.55'
    compile 'com.google.tango:support-base:1.54'
    compile 'com.google.tango:sdk-depth-interpolation:1.55'
    compile 'com.google.tango:sdk-transform-helpers:1.55'
    compile 'org.rajawali3d:rajawali:1.1.668@aar'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation project(':tango_support_java_lib')
    implementation project(':tango_ux_support_library')
}

这是我的项目 build.gradle 文件...

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这是我的 tango_support_java_lib 模块 build.gradle 文件...

configurations.maybeCreate("default")
artifacts.add("default", file('tango_support_java_lib.aar'))

这是我的 tango_ux_support_library 模块 build.gradle 文件...

configurations.maybeCreate("default")
artifacts.add("default", file('tango_ux_support_library.aar'))

尝试的解决方案

查看 StackOverFlow 中现有的解决方案,我尝试了以下方法......

  • 在模块 build.gradle 文件中的 buildConfig 代码块中写入 multiDexEnabled true
  • Build > Clean Project 之后,Build > Rebuild Project
  • 删除.gradle 文件夹,然后运行应用程序
  • 在我的 Module build.gradle 文件的依赖项中将每个 compile 单词更改为 compileOnly

所有人都让我失望了,这很烦人。

这是我最后一年的计算机科学项目的工作。

【问题讨论】:

  • 请添加compile 'com.android.support:multidex:1.0.2' 我很确定这会完成这项工作。
  • 在我的 Module build.gradle 文件的依赖项中输入,没有成功;至少,我应该把它放在那里吗?
  • 是的,模块是正确的。删除“构建”目录并重建项目。你也会取消multiDexEnabled true
  • 如何删除两个“构建​​”目录?非常感谢您对这个问题的回答是一步一步的,谢谢
  • (旁白:我倾向于建议不要对人们如何回答问题做出规定。我们有很多人要求“需要一步一步的指南,请停下来”,这是肯定的表明他们没有进行任何研究。这显然不适用于您,但在提出类似请求时值得牢记!)

标签: java android android-gradle-plugin google-project-tango


【解决方案1】:

我已经解决了这个问题,事实证明,问题的原因是在编写必要的依赖项(在模块 build.gradle 文件中)以获取相同的库之后,将 JAR/AAR 文件作为库导入;因此,在删除 JAR/AAR 文件后,我的应用程序能够运行

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2018-05-04
    • 2018-04-24
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多