React Native с @ response-native-community / google-signin: тип программы уже присутствует: co.apptailor.googlesignin.PendingAuthRecovery - PullRequest
2 голосов
/ 13 июля 2020

Ошибка появляется в проекте TypeScript с React Native и Firebase:

    "@react-native-community/google-signin": "^4.0.3",
    "@react-native-firebase/app": "^8.2.0",
    "@react-native-firebase/auth": "^8.0.8",
    "@react-native-firebase/firestore": "^7.2.2",
    "@react-native-firebase/storage": "^7.1.6",
    "@react-navigation/native": "^5.6.0",
    "prop-types": "react-native-community/google-signin",
    "react": "16.11.0",
    "react-native": "0.62.2",
    ...

Перед добавлением @ response-native-community / google-signin сборка проекта выполняется красиво на Android. Затем я добавил его и выполнил следующие шаги: https://github.com/react-native-community/google-signin/blob/master/docs/android-guide.md

Я очистил сборку с помощью ./gradlew clean

Теперь, когда я запускаю yarn android, я have:

D8: Program type already present: co.apptailor.googlesignin.PendingAuthRecovery

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:multiDexListDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > 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: co.apptailor.googlesignin.PendingAuthRecovery

Я проверил файлы build.gradle, но не нашел другой зависимости, связанной с авторизацией, которую я мог бы добавить. Проект относительно свободен sh.

В android / app / build.gradle у меня есть:

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:23.0.1"
    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    implementation 'com.android.support:multidex:1.0.3'
    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }
    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

Я выполнил необходимую здесь проверку, но безуспешно: https://github.com/react-native-community/google-signin/issues/763

1 Ответ

1 голос
/ 13 июля 2020

Это произошло из-за этой строки в пакете. json:

"prop-types": "react-native-community/google-signin",

Я удалил prop-types:

yarn remove prop-types

Теперь все работает как шарм.

Вероятно, это был не лучший способ добавить типы.

...