web-dev-qa-db-ja.com

Facebook Sdk Androidビルドエラー

react-nativeプロジェクトをビルドし、react-native fbsdkを使用しようとしています。

ただし、次のエラーが表示されます。

/home/luiz/MYP/app/node_modules/react-native-fbsdk/Android/build/intermediates/res/merged/release/values-v24/values-v24.xml:3: AAPT: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

/home/luiz/MYP/app/node_modules/react-native-fbsdk/Android/build/intermediates/res/merged/release/values-v24/values-v24.xml:4: AAPT: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Colored'.

/home/luiz/MYP/app/node_modules/react-native-fbsdk/Android/build/intermediates/res/merged/release/values-v24/values-v24.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

/home/luiz/MYP/app/node_modules/react-native-fbsdk/Android/build/intermediates/res/merged/release/values-v24/values-v24.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'Android:TextAppearance.Material.Widget.Button.Colored'.


:react-native-fbsdk:processReleaseResources FAILED

私の現在のOSはLinux Elementary 0.4.1 Loki x64です。

私は[email protected]を使用しています。このため、react-native-fbsdk @ 0.4.0を使用しています。

私はすでに試しました:

  • cd Android && ./gradlew clean

  • プロジェクトを削除して、npm install itを再実行します

  • Android AP​​Iの23および24で試してください。

41
Luiz

Gradleを掘り下げた後、次の解決策を思いつきました。

重要なのは、facebook-Android-sdkで必要なreact-native-fbsdkを除外し、facebook-Android-sdkモジュールで目的の(動作中の)バージョンをプルすることです(できればnode_modulesフォルダーを変更せずに)。

幸いなことに、gradleはこれを提供します。

// Android/app/build.gradle

dependencies {
    compile(project(':react-native-fbsdk')){
      exclude(group: 'com.facebook.Android', module: 'facebook-Android-sdk')
    }
    compile "com.facebook.Android:facebook-Android-sdk:4.22.1"
}
27
Andreyco

どうやらFacebookがSDKを更新しました 昨日 で、最新(4.23.0)のSDKにはバグがあるかもしれません。

これを解決するには、node_modules\react-native-fbsdk\Android\build.gradleを次の場所から変更します。

compile('com.facebook.Android:facebook-Android-sdk:4.+')

に:

compile('com.facebook.Android:facebook-Android-sdk:4.22.1')

私はGradleの男ではありませんので、誰かが親gradle.buildからバージョンを強制するより良い方法を知っている場合はコメントしてください、そして答えを更新します。

**編集**

@Andreycoは、node_modulesを変更せずにこれを解決できました。彼の答えまでスクロールダウンするか、 here をクリックします。

また、@ JuanJoseTugoresから通知されたように、- pull request in react-native-fbsdk が承認待ちであるため、バグの進行状況を確認し、解決されたときに通知を受けることができます。

**別の更新**
Facebookは、sdkを修正したと言って、この問題に関して彼らのために開かれた bug を閉じました。そのため、すべての回避策を削除できます。

どうやらFBはまだこれを解決していません。 RN 0.44およびFB 0.6.0にアップグレードしました

52
atlanteh

node_modules/...の下のファイルを変更せずに、これを解決できました。 react-native-fbsdkバージョンを0.6.0にアップグレードし、これをアプリケーションのbuild.gradleファイルに追加して、バージョンfacebook-Android-sdkのピン4.22.1に追加しました。

project(':react-native-fbsdk') {
    configurations.all {
        resolutionStrategy {
            force 'com.facebook.Android:facebook-Android-sdk:4.22.1'
        }
    }
}

configurations.all {
    resolutionStrategy {
        force 'com.facebook.Android:facebook-Android-sdk:4.22.1'
        ...
    }
}

編集:私たちは次のもので構築しています:

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    ...
}
11
rtcherry

このエラーが発生しました。まず、RN Facebook SDK v.0.6.0はreact-native >= 0.44.0でのみ機能するため、package.jsonの依存関係をreact-native: ^0.44.0に更新する必要があります。次にAndroid build.gradleファイルに移動して、次の変更を行います:compileSdkVersion 25およびcompile "com.Android.support:appcompat-v7:25.0.0"

5
hphp95

this 修正済み

Android/build.gradle

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("Android")) {
            Android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
}
5
David Rearte

RN 0.42を使用して動作させるために探している人のために、これは今のところ反応バージョンが安定しているものであるため、Facebook SDK 4.18.0"com.facebook.Android:facebook-Android-sdk:4.18.0"は、[email protected]がリリースされるまでにリリースされたものです。そうでない場合、最終的には問題: https://developers.facebook.com/bugs/1712442065726889/

それに、facebookのsdkを必要なものにするのに苦労している場合は、これを試してください:

Android/app/build.gradle

...

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

Android/build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

project(':react-native-fbsdk') {
  configurations.all {
    resolutionStrategy {
      force 'com.facebook.Android:facebook-Android-sdk:4.18.0'
    }
  }
}

...

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy {
              force 'com.facebook.Android:facebook-Android-sdk:4.18.0'
            }
        }
    }
}
4
Alexis Duran

ご覧のとおり、パッチが近づいています。

https://github.com/facebook/react-native-fbsdk/pull/339https://github.com/facebook/react-native-fbsdk/pull/338

それまでの間、react-native-fbsdk v0.5を使用している場合は、

yarn add react-native-fbsdk@https://github.com/tugorez/react-native-fbsdk

私は提案された変更を適用しましたが、動作しています:)しかし、私はこれをサポートしないので、更新を維持しないことに注意してください...できるだけ早く公式ライブラリに戻る必要があります。

1