react-native-fb sdk com.android.support 依赖错误
react-native-fb sdk com.android.support dependency error
> 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
今天早上 运行ning react-native 运行-android 没有对代码做任何更改或添加新包时,这个问题开始出现,直到现在它工作正常!
"react-native":"0.50.3", "react-native-fbsdk":"0.6.3"
我可以看到我的 sdk/extras/android/m2repository/com/android/support
子文件夹中缺少 android support libraries
,所有子文件夹的最后一个都是 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
我有同样的问题,我用 :
解决了
编辑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')
,
但我不知道这是否是解决此问题的最佳方法,
谢谢
我看到另一个线程在这个非常相同的问题上打开:
那里推荐的解决方案接近Sutani,即编辑node_modules/react-native-fbsdk/android/build.gradle
并添加
compile('com.facebook.android:facebook-android-sdk:4.28.0')
这似乎不是 react-native-fbsdk 引入的回归,而是 Google Android 库引入的回归,但我不是 100% 清楚它。
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"
把上面的脚本放在你的react-native项目的根目录下,给它添加执行权限,然后在postinstall属性里面的package.json添加 ./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;"
},
[..]
}
如果您不熟悉安装后脚本,它们会在 运行 宁 npm install / yarn 命令后立即 运行。
建议的解决方案适用于云构建工具 :) 并且它只是暂时的。未来的 rn-fbsdk 版本应该会解决这个问题。
关键在于您案例中显示的错误消息:
Searched in the following locations:
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/react-native-fbsdk/android/build.gradle
我用 27.0.0-alpha1
替换了 27.0.1
并且构建成功。
我也遇到了同样的问题。我能够通过更新我的
来成功构建
ROOT : android/build.gradle
文件。
步骤:
1. 您所要做的就是为 maven.google.com
添加一个新的 maven
行到 allprojects
部分
2. 添加resolutionStrategy
Will Restrict your android fbsdk version to 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"
}
}
}
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!
> 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
今天早上 运行ning react-native 运行-android 没有对代码做任何更改或添加新包时,这个问题开始出现,直到现在它工作正常!
"react-native":"0.50.3", "react-native-fbsdk":"0.6.3"
我可以看到我的 sdk/extras/android/m2repository/com/android/support
子文件夹中缺少 android support libraries
,所有子文件夹的最后一个都是 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
我有同样的问题,我用 :
解决了编辑
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')
,
但我不知道这是否是解决此问题的最佳方法, 谢谢
我看到另一个线程在这个非常相同的问题上打开:
那里推荐的解决方案接近Sutani,即编辑node_modules/react-native-fbsdk/android/build.gradle
并添加
compile('com.facebook.android:facebook-android-sdk:4.28.0')
这似乎不是 react-native-fbsdk 引入的回归,而是 Google Android 库引入的回归,但我不是 100% 清楚它。
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"
把上面的脚本放在你的react-native项目的根目录下,给它添加执行权限,然后在postinstall属性里面的package.json添加 ./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;"
},
[..]
}
如果您不熟悉安装后脚本,它们会在 运行 宁 npm install / yarn 命令后立即 运行。
建议的解决方案适用于云构建工具 :) 并且它只是暂时的。未来的 rn-fbsdk 版本应该会解决这个问题。
关键在于您案例中显示的错误消息:
Searched in the following locations:
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/react-native-fbsdk/android/build.gradle
我用 27.0.0-alpha1
替换了 27.0.1
并且构建成功。
我也遇到了同样的问题。我能够通过更新我的
来成功构建
ROOT : android/build.gradle
文件。
步骤:
1. 您所要做的就是为 maven.google.com
添加一个新的 maven
行到 allprojects
部分
2. 添加resolutionStrategy
Will Restrict your android fbsdk version to 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"
}
}
}
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!