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 APIの23および24で試してください。
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"
}
どうやら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にアップグレードしました
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"
...
}
このエラーが発生しました。まず、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"
this 修正済み
Android/build.gradle
subprojects {
afterEvaluate {project ->
if (project.hasProperty("Android")) {
Android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
}
}
}
}
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'
}
}
}
}
ご覧のとおり、パッチが近づいています。
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
私は提案された変更を適用しましたが、動作しています:)しかし、私はこれをサポートしないので、更新を維持しないことに注意してください...できるだけ早く公式ライブラリに戻る必要があります。