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

我有同样的问题,我用 :

解决了
  1. 编辑package.json,我正在将react-native-fbsdkreact-native-fbsdk": "0.6.3"编辑为react-native-fbsdk": "0.6.0"

  2. 转到您的 node_modules/react-native-fbsdk/android/build.gradle。打开 build.gradle file.

  3. 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!