React Native:facebook-android-sdk 依赖构建错误

Posted

技术标签:

【中文标题】React Native:facebook-android-sdk 依赖构建错误【英文标题】:React Native: facebook-android-sdk dependency build error 【发布时间】:2018-07-19 19:01:56 【问题描述】:

我正在运行 React Native v0.53.0 并安装了 npm react-native-fbsdk v0.7.0 但我无法构建我的项目。

我见过各种issues 和*** 问题,似乎问题在于同步正确的版本。但是,我几乎尝试了在线阅读的所有版本选项,但仍然出现构建错误。所以,我恢复了我的更改来发布这个问题。

感谢您的帮助!

android/app/build.gradle

apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android 
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig 
        applicationId "com.upwork"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk 
            abiFilters "armeabi-v7a", "x86"
        
    
    splits 
        abi 
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        
    
    buildTypes 
        release 
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        
    
    // applicationVariants are e.g. debug, release
    applicationVariants.all  variant ->
        variant.outputs.each  output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null)   // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            
        
    


dependencies 
    compile project(':react-native-fbsdk')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules


// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) 
    from configurations.compile
    into 'libs'

android/build.gradle

 buildscript 
        repositories 
            jcenter()
        
        dependencies 
            classpath 'com.android.tools.build:gradle:2.2.3'

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        
    

    allprojects 
        repositories 
            mavenLocal()
            jcenter()
            maven 
                // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
                url "$rootDir/../node_modules/react-native/android"
            
        
    

react-native-fbsdk/android/build.gradle

apply plugin: 'com.android.library'

android 
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig 
        minSdkVersion 16
        targetSdkVersion 26
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    compile 'com.android.support:appcompat-v7:27.0.2'
    compile 'com.facebook.react:react-native:+' // support react-native-v0.22-rc+
    compile 'com.facebook.android:facebook-android-sdk:4.+'


repositories 
    mavenCentral()
    jcenter()
    maven 
        url 'https://maven.google.com/'
        name 'Google'
    

堆栈跟踪

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find com.android.support:appcompat-v7:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.jar
     Required by:
         Upwork:app:unspecified
         Upwork:app:unspecified > com.facebook.react:react-native:0.53.0
   > Could not find com.android.support:appcompat-v7:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/appcompat-v7/27.0.2/appcompat-v7-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-common:4.30.0
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-login:4.30.0
   > Could not find com.android.support:support-annotations:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/27.0.2/support-annotations-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/27.0.2/support-annotations-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/support-annotations/27.0.2/support-annotations-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-core:4.30.0
   > Could not find com.android.support:support-core-utils:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-core-utils/27.0.2/support-core-utils-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-core-utils/27.0.2/support-core-utils-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/support-core-utils/27.0.2/support-core-utils-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-core:4.30.0
   > Could not find com.android.support:support-v4:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4/27.0.2/support-v4-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4/27.0.2/support-v4-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/support-v4/27.0.2/support-v4-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-common:4.30.0
   > Could not find com.android.support:cardview-v7:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/cardview-v7/27.0.2/cardview-v7-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/cardview-v7/27.0.2/cardview-v7-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/cardview-v7/27.0.2/cardview-v7-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-common:4.30.0
   > Could not find com.android.support:customtabs:27.0.2.
     Searched in the following locations:
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/customtabs/27.0.2/customtabs-27.0.2.pom
         file:/Users/annagarcia/Library/Android/sdk/extras/android/m2repository/com/android/support/customtabs/27.0.2/customtabs-27.0.2.jar
         file:/Users/annagarcia/Desktop/projects/Upwork/android/sdk-manager/com/android/support/customtabs/27.0.2/customtabs-27.0.2.jar
     Required by:
         Upwork:app:unspecified > Upwork:react-native-fbsdk:unspecified > com.facebook.android:facebook-android-sdk:4.30.0 > com.facebook.android:facebook-common:4.30.0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

【问题讨论】:

react-native-fbsdk error: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'的可能重复 【参考方案1】:

尝试将您的 gradle 版本升级到 26

android 
    compileSdkVersion 26
    buildToolsVersion "26.0.1"


dependencies 
    compile project(':react-native-fbsdk')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:26.0.1"
    compile "com.facebook.react:react-native:+"

【讨论】:

【参考方案2】:

Android Studio 设置

    转到Android Studio |新项目 |最低 SDK。 选择 API 15:Android 4.0.3 或更高版本并创建新项目。 创建新项目后,打开 your_app | build.gradle。

    将以下内容添加到 build.gradle (Project) 文件的 buildscript repositories 部分:

    ma​​venCentral()

    将以下内容添加到 build.gradle (module: app) 文件的依赖项 部分以编译最新版本的 Facebook SDK:

    实现 'com.facebook.android:facebook-android-sdk:[4,5)'

现在尝试重建您的项目。 我希望它会有所帮助。

【讨论】:

以上是关于React Native:facebook-android-sdk 依赖构建错误的主要内容,如果未能解决你的问题,请参考以下文章

react native 增加react-native-camera

更新 react-native-maps 以使用 create-react-native-app

react native 增加react-native-storage

React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别

什么是 react-native-cli 和 @react-native-community/cli?

React Native - 当 react-native 版本 > 0.55 时,无法通过 react-native-cli 创建新项目