Android - Задача: app: mergeDexRelease FAILED - PullRequest
1 голос
/ 06 апреля 2020

пожалуйста, учтите, что я не очень знаком с Android development.

Пытаясь сгенерировать подписанный пакет Android для моего приложения React Native, я наткнулся на следующую ошибку:

Task :app:mergeDexRelease FAILED
D8: Program type already present: com.horcrux.svg.Brush$BrushType
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
Learn how to resolve the issue at 
https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.horcrux.svg.Brush$BrushType

...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDexRelease'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
     Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
     Program type already present: com.horcrux.svg.Brush$BrushType
  • Я знаю, что BrushType - это класс из react-native-svg
  • Я запустил gradlew app:dependencies и не нашел модуля в зависимости от Brush или чего-либо связанного на com.horcrux.svg или react-native-svg
  • Уже пробовали очистить проект, удалить .iml файлы, сделать недействительными Android Студийные кеши, перестроить, переустановить node_modules и т. д.
  • Пробовал возиться с build.gradle и gradle.properties без везения
  • Я прочитал это android руководство по дублирующим классам также без везения

Я понимаю что есть 2 или более зависимостей, использующих com.horcrux.svg.Brush$BrushType, но я не могу их найти. Я полагаю, что, как только я их найду, я смогу сделать

implementation(:my-library) {
  exclude ...
}

Правильно?

gradle.properties

android.useAndroidX=true
android.enableJetifier=true

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m

android / app / build.gradle

dependencies {
    implementation project(':react-native-appearance')
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation project(':watermelondb')
    implementation project(':react-native-calendar-events')

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...