Реакция-native-fb sdk com.android.support ошибка зависимости
> A problem occurred configuring project ':react-native-fbsdk'.
> Could not resolve all dependencies for configuration ':react-native-fbsdk:_debugPublishCopy'.
> Could not find com.android.support:appcompat-v7:27.0.1.
Searched in the following locations:
file:/<location_to_sdk>/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.pom
file:/<location_to_sdk>/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.jar
file:/<location_to_app>/android/sdk-manager/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.jar
Required by:
newPtMobile:react-native-fbsdk:unspecified
Эта проблема начала возникать сегодня утром, когда запускался реактивный запуск-android без внесения каких-либо изменений в код или добавления новых пакетов, до сих пор она работала нормально!
"реакция-нативный":"0.50.3", "реакция-нативный-fbsdk":"0.6.3"
Я вижу, что мне не хватает android support libraries
в моем sdk/extras/android/m2repository/com/android/support
подпапки, все подпапки имеют 26.0.0-alpha1
папка как последняя. Я уже пытался удалить репозиторий поддержки и установить снова через Android Studio и загрузить последнюю версию android_m2repository
вручную, но папки по-прежнему отсутствуют.
Что мне трудно понять, так это почему google's maven repository
( https://dl.google.com/dl/android/maven2/index.html) утверждает, что, например, в m2repository/com/android/support/appcompat-v7
У меня должна быть папка с именем 27.0.2
(вместе с некоторыми предыдущими версиями, которые также отсутствуют), но даже в последней версии android_m2repository, которую они предлагают, также отсутствует!
https://dl.google.com/android/repository/android_m2repository_r48.zip
5 ответов
У меня тоже есть такая же проблема. Я смог успешно построить, обновив мой
КОРЕНЬ: android/build.gradle
файл.
ШАГИ:
1. Все, что вам нужно сделать, это добавить новый maven
линия к allprojects
раздел для maven.google.com
2. Добавить resolutionStrategy
Ограничит вашу версию Android FBSDK 4.28.0
allprojects {
repositories {
mavenLocal()
jcenter()
configurations.all {
resolutionStrategy {
force 'com.facebook.android:facebook-android-sdk:4.28.0'
}
}
maven {
url "https://maven.google.com"
}
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
Я вижу, что другой поток был открыт по той же самой проблеме: получение ошибки при запуске реакции-нативный запуск-Android
Рекомендуемое решение близко к Сутани, то есть редактирование node_modules/react-native-fbsdk/android/build.gradle
и добавление
compile('com.facebook.android:facebook-android-sdk:4.28.0')
Похоже, это не регрессия, введенная response-native-fbsdk, а библиотеками Google Android, но я не на 100% уверен в этом.
Ключ находится в сообщении об ошибке, показанном в вашем случае:
Поиск в следующих местах:
file:/<location_to_sdk>/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.1/
У меня было то же самое. Затем я пошел к месту:
file:<location_to_sdk>/sdk/extras/android/m2repository/com/android/support/appcompat-v7/
И обнаружил, что нет каталога с именем 27.0.1
потому что в моем случае последняя версия buildTool не была загружена. В моем случае у меня было 27.0.0-alpha1
,
Так в обоих моих приложениях build.gradle
И в
node_modules/ реагируют родной-fbsdk/ Android/build.gradle
Я заменил 27.0.1
с 27.0.0-alpha1
и сборка прошла успешно.
У меня та же проблема, и я решил с:
редактировать
package.json
и я редактируюreact-native-fbsdk
отreact-native-fbsdk": "0.6.3"
вreact-native-fbsdk": "0.6.0"
перейти к вашей
node_modules/react-native-fbsdk/android/build.gradle
, открытьbuild.gradle file.
+ Изменить
compile('com.facebook.android:facebook-android-sdk:4++')
вcompile('com.facebook.android:facebook-android-sdk:4.22.1')
,
но я не знаю, если это лучший способ решить эту проблему, спасибо
build.gradle --- приложение
dependencies {
compile 'com.facebook.react:react-native:+' // support react-native-v0.22-rc+
compile('com.facebook.android:facebook-android-sdk:4.+')
}
allprojects {
repositories {
configurations.all {
resolutionStrategy {
force 'com.facebook.android:facebook-android-sdk:4.28.0'
}
}
}
}
Solution:
How to fix the file permissions, after loading end react-native start
First, Go to android folder
cd android
Now clean the project...
gradlew clean //for Mac users, change gradlew to ./gradlew
Now run the build process again in the root folder
cd ..
react-native run-android
Solved Issue Happy Coding!
CUR_SPACE=.
culpritLocation=$CUR_SPACE/node_modules/react-native-fbsdk/android/build.gradle
sed -i -e 's/com.facebook.android:facebook-android-sdk:4.+/com.facebook.android:facebook-android-sdk:4.26.0/' $culpritLocation
printf "Fixed Could not resolve all dependencies for configuration ':react-native-fbsdk:_debugPublishCopy'.\n> Could not find com.android.support:appcompat-v7:27.0.1."
printf "fix_rn_fbsdk_google_libraries.sh should be removed at a later time\n"
Поместите приведенный выше скрипт в корень вашего реактивного проекта, добавьте ему разрешения на выполнение, затем в package.json в свойстве postinstall add ./your-script-name.sh;, Пример:
{
"name": "AppName",
"version": "1.28.14",
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"postinstall": "./fix_rn_fbsdk_google_libraries.sh; ./infuse_version.sh;"
},
[..]
}
Если вы не знакомы со сценариями postinstall, они запустятся сразу после выполнения команды npm install / yarn.
Предлагаемое решение работает с инструментами облачной сборки:) и это только временно. Будущие выпуски rn-fbsdk должны решить эту проблему.