R8: Тип программы уже присутствует: androidx.databinding.library.baseAdapters.BR - PullRequest
1 голос
/ 30 января 2020

Я получаю вышеуказанную ошибку при попытке создать релиз сборки моего приложения. При выполнении отладочной сборки все работает нормально.

Мой проект имеет следующую структуру:

  • приложение (содержит привязку данных)

  • video sdk (содержит привязку данных)

  • другой sdk (содержит привязку данных)

Я думаю, что он находит несколько экземпляров привязки данных, которые делают вышеупомянутую ошибку, но я не совсем знаете, как обойти это.

Что также странно, это то, что приложение компилируется при нажатии кнопки запуска в Android studio, но при попытке собрать из терминала его не компилируется

Ответы [ 4 ]

1 голос
/ 30 января 2020

Размещение нескольких обходных путей здесь

  1. ./gradlew clean

  2. Исключить дубликаты как сообщение Program type already present означает, что существует конфликт имен.

    configurations {
        compile.exclude group: 'androidx.databinding', module: 'databinding'
    }
    

Затем выполните syn c, очистите и восстановите.

0 голосов
/ 10 апреля 2020

Я столкнулся с этой ошибкой и потратил почти 2 дня на выяснение причины этой ошибки. В конце концов я обнаружил, что один из моих переходных SDK, который использовал Kotlin, не имел следующего в своем файле Gradle:

kotlinOptions kotlin_options = {
    jvmTarget = "1.8"
}

После добавления этого я смог устранить ошибку.

0 голосов
/ 30 января 2020

Пожалуйста, попробуйте это, я не уверен, но когда-нибудь выйдет apk с проблемой конфликта *

Добавьте multiDexEnabled true в файл приложения.

Надеюсь, это поможет!

0 голосов
/ 30 января 2020

Я не уверен, но попытался создать отдельный модуль для Gradle привязки данных и добавить этот модуль во все текущие модули (приложение, видео SDK, другой SDK)

Ядро модуля (Gradle с "API"):

api 'com.github.bumptech.glide:glide:4.9.0'
kapt 'com.github.bumptech.glide:compiler:4.9.0'

Модуль приложения и другие модули SDK будут использовать этот основной модуль.

implementation project(path: ':core')

Надеюсь, это поможет.

...