Ошибка появляется в проекте 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