Тип программы уже присутствует: androidx.versionedparcelable.NonParcelField - PullRequest
6 голосов
/ 18 июня 2019

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

> Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED

D8: Program type already present: androidx.versionedparcelable.NonParcelField    

FAILURE: Build failed with an exception.

Я пытался изменить multi dex на false в build.gradle

  defaultconfig {...
    multiDexEnabled false 
     ...}

я не хочу мигрировать на androidx, я просто хочу избавиться от androidx и этой ошибки; Пожалуйста, помогите мне, спасибо заранее

Ответы [ 4 ]

4 голосов
/ 23 июня 2019

Основываясь на моих исследованиях, я не смог найти простой способ или я должен сказать правильный способ отойти от androidx, чтобы решить вышеуказанную проблему, просто добавьте следующее в свои gradle.properties

android.useAndroidX=true
android.enableJetifier=true

Это может вызвать еще одну проблему, такую ​​как

Не удалось выполнить задачу ': response-native-navigation: compileReactNative57_5DebugJavaWithJavac'

причина этой ошибкиЕсли это произошло после миграции вашего проекта Android на androidx, многие из ваших реактивно-родных библиотек поставляют собственный Java-код и не были обновлены, обновление его вручную утомительно, я смог сделать это с помощью этой библиотеки jetifier просто запустив

npm i --save-dev jetifier
npx jetify 

В моем случае все еще были некоторые библиотеки, вызывающие некоторые проблемы, такие как response-native-fast-image, в качестве обходного пути я создал gradle.properties внутри / node_modules /response-native-fast-image / android и деактивированный AndroidX и Jetifier для этого модуля:

android.useAndroidX=false
android.enableJetifier=false
1 голос
/ 26 июня 2019

Ответ, который опубликовал Ахмед, является отличным решением после перехода на AndroidX. В моем случае я еще не хотел этого и обнаружил, что только одна библиотека в моем приложении использует AndroidX из этого потока

Короче говоря, мое решение состояло в том, чтобы просто обновить пакет response-native-device-info @ latest. Сборка приложения, как и ожидалось, после его сборки

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

Я столкнулся с подобной проблемой: я обновляю приложение для RN ​​0.60.0.В моем случае у меня была зависимость в build.gradle с «+» в его версии, и эта конкретная зависимость была обновлена, что нарушило мою сборку.

В моем случае, явное указание номера версии решило мою проблему.

./gradlew app:dependencies покажет дерево ваших зависимостей;это также может указать вам правильное направление.

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

Пожалуйста, выполните следующие шаги:

  1. Откройте Android Studio
  2. Нажмите Refactor в верхней строке меню
  3. Нажмите Migrate тоже AppCompat

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

...