Ошибка сборки: тип программы уже присутствует - PullRequest
0 голосов
/ 28 апреля 2018

Я искал в Интернете об этой ошибке, и проблема всегда, кажется, заканчивалась каким-то конфликтом зависимостей. Я думаю, что я должен добавить exclude после определенных зависимостей, но я не уверен, какие из них. На основании ошибки также неясно, какую зависимость я должен на самом деле исключить; все, что я знаю, это то, что group, вероятно, com.android.support ...

Вот что я пробовал:

  1. Добавление multiDexEnabled true к моему defaultConfig блоку в build.gradle.
  2. Очистка проекта в Android Studio.
  3. Удаление (из файловой системы) вручную всего каталога .gradle.
  4. Я убедился, что compileSdkVersion и targetSdkVersion одинаковы.
  5. Я убедился, что все мои зависимости Android используют одну и ту же версию (а именно 26.1.0).

Несмотря на все это, я все еще получаю эту ошибку при сборке:

Program type already present: android.support.compat.R$bool

и из компилятора Java:

Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
F:\ExampleProject\app\build\intermediates\transforms\dexBuilder\debug\115, 
F:\ExampleProject\app\build\intermediates\transforms\externalLibsDexMerger\debug\0

Вот файл build.gradle моего модуля:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.myapp.exampleproject"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.2"
    }
    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:design:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:support-compat:26.1.0'
    implementation 'com.android.volley:volley:1.1.0'
    implementation 'com.github.bumptech.glide:glide:4.1.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.1.0'
}

и, наконец, файл build.gradle моего проекта:

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

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

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

Любая помощь в исправлении этого будет принята с благодарностью.

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Это проблема с Glide 4.1.0. Вместо этого используйте версию 4.1.1, которая исправляет ошибку, удаляя файл R * .class из их зависимостей. ( источник )

0 голосов
/ 29 июня 2019

Решение:

 implementation ('com.github.bumptech.glide:glide:4.1.0') {
        exclude group: 'com.android.support'
        exclude module: 'support-fragment'
        exclude module: 'appcompat-v7'
    }
0 голосов
/ 28 апреля 2018

Это, вероятно, из-за библиотеки Glide. Попробуйте исключить из него библиотеку поддержки:

// add support-fragment removed from Glide.
implementation "com.android.support:support-fragment:26.1.0"

implementation ('com.github.bumptech.glide:glide:4.1.0') {
   exclude group: 'com.android.support'
   exclude module: 'support-fragment'
   exclude module: 'appcompat-v7'
}

Вы можете увидеть библиотеку поддержки внутри Glide на Glide build.gradle

...