Невозможно объединить dex - gradle 3.0.0

Я новичок в Android, и я пытаюсь работать через этот учебник (только часть базы данных Room): здесь.

Когда я запускаю свое приложение, я получаю следующую ошибку:

Ошибка: выполнение задачи не выполнено: app: transformDexArchiveWithExternalLibsDexMergerForDebug '. > com.android.builder.dexing.DexArchiveMergerException: невозможно объединить dex

Эта проблема, казалось, обнаружилась после того, как я следовал за этим, чтобы исправить другую ошибку (относительно директории экспорта схемы для Комнаты). Я попытался последовать совету этого поста об исправлении этой проблемы с помощью multiDexEnabled true и делать чистую / перестроить, но это не сработало.

Любой совет будет принят во внимание. Это мой первый пост здесь, так что если я сделал что-то не так, пожалуйста, дайте мне знать.

Проект 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
    }
}

ext {
    buildToolsVersion = "25.0.2"
    supportLibVersion = "25.3.1"
    archRoomVersion = "1.0.0-alpha1"
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.google.com' } //needed for Room

    }
}

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

App Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.myname.room_example"
        minSdkVersion 21
        targetSdkVersion 26
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] // Room schema
            }
        }

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    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 'com.android.support:multidex:1.0.2'

    implementation "android.arch.persistence.room:runtime:1.0.0-alpha1"
    annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1"
    implementation 'com.android.support:support-annotations:27.0.0'
}

2 ответа

Обновить buildToolsVersion а также supportLibVersion до последней в вашем коде ниже.

ext {
buildToolsVersion = "25.0.2"
supportLibVersion = "25.3.1"
archRoomVersion = "1.0.0-alpha1"

}

А затем очистите и восстановите проект, чтобы увидеть, работает ли он.

Я нашел решение. Замена:

"android.arch.persistence.room:runtime:1.0.0-alpha1" 

а также

"android.arch.persistence.room:compiler:1.0.0-alpha1"

с

"android.arch.persistence.room:runtime:1.0.0"

а также

"android.arch.persistence.room:compiler:1.0.0"
Другие вопросы по тегам