Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует имени 'android: TextAppearance.Material.Widget.Button.Colored'

Сегодня я столкнулся с ошибкой, упомянутой в этом сообщении: Ошибка получения родительского элемента: ресурс не найден, который соответствует указанному имени 'android: TextAppearance.Material.Widget.Button.Borderless.Colored'

Самое смешное (и разница) - наше приложение составляет 5 месяцев в производстве, и до сих пор мы сделали сотни сборников и APK. Мы не изменили ни одну строку кода в течение недели (ни одна из версий библиотеки), и сборка неожиданно перестала работать с этой упомянутой ошибкой.

Execution failed for task ':react-native-fbsdk:processReleaseResources'

X:\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'.
X:\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'.    
X:\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'.    
X:\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'.

Использование этих версий библиотек (package.json):

...
"react": "15.3.2",
"react-native": "0.37.0",
...
"react-native-fbsdk": "~0.5.0",
...

Наш build.gradle(не весь), который работал до сих пор:

    compileSdkVersion 24
    buildToolsVersion '24.0.3'
    defaultConfig {
        applicationId "xxx"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 14
        versionName "1.5.3"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

dependencies {
    compile project(':react-native-device-info')
    compile project(':react-native-maps')
    compile project(':realm')
    compile project(':react-native-vector-icons')
    compile project(':react-native-image-picker')
    compile project(':react-native-fs')
    compile project(':react-native-share')
    compile project(':react-native-push-notification')
    compile project(':react-native-fbsdk')
    compile('com.google.android.gms:play-services-gcm:9.4.0') {
        force = true;
    }
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.facebook.react:react-native:+'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.3'
    compile 'com.fasterxml.jackson.core:jackson-core:2.2.3'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.2.3'
}

Любые идеи, пожалуйста?

Ответ 1

Наконец, я нашел решение. После прочтения всех ответов и связанных с ними проблем (Facebook Sdk Android Error Building) и многих попыток (обновление библиотек, зависимости, множество изменений в версии и т.д.) Мне удалось создать приложение снова. Затем я вернул все ненужные изменения и там, что осталось:

Мне нужно было добавить 2 вещи (итератор и строка с "force" ) в файле android/build.gradle (не android/app/build.gradle):

allprojects {
    configurations.all {
       resolutionStrategy {
         eachDependency { DependencyResolveDetails details ->
           if (details.requested.group == 'com.facebook.react' && details.requested.name == 'react-native') {
             details.useVersion "0.37.0" // Your real React Native version here
           }
         }
         force 'com.facebook.android:facebook-android-sdk:4.22.1'
       }
    }
}

Спасибо за все советы в любом случае!

Ответ 2

Я думаю, что это та же проблема, что Facebook Sdk Android Error Building

Вы должны перейти от

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

to

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

в node_modules\response-native-fbsdk\android\build.gradle

Ответ 3

Решение найдено в этом вопросе Facebook Sdk Android Error Building

Я также разблокировал репо и предоставил все эти изменения, чтобы запустить его с помощью RN 0.42. Вы можете установить его, набрав yarn add https://github.com/kidnapkin/react-native-fbsdk.git

Ответ 4

на самом деле существует некоторая проблема зависимостей я столкнулся с таким же, но я решил его, применяя эти изменения несоответствия версии:

compileSdkVersion 24
buildToolsVersion '24.0.3'

compile 'com.android.support:appcompat-v7:23.0.1'

убедитесь, что эта версия - это тот же API. Это означает, что если вы используете 24 API для сборки, тогда appcompat-v7 должен быть 24.0. + Что-то.

Ответ 5

Эта проблема возникла после обновления библиотек, добавления зависимостей, изменений в версии и т.д. Все, что вам нужно, это совпадение версий Sdk вашего проекта и пакет, который вы только что добавили или обновили.

  • Перейдите в android/app/build.gradle

    android {
      compileSdkVersion 25
      buildToolsVersion '25.0.3'
    
      defaultConfig {
        minSdkVersion 16
        targetSdkVersion 25
    

    }

  • Перейдите к node_modules/your-package/android/build.gradle

    android {
      compileSdkVersion 25
      buildToolsVersion '25.0.3'
    
      defaultConfig {
       minSdkVersion 16
       targetSdkVersion 25
    

Если проблема еще не решена, проверьте другие пакеты из package.json

Вот оно. Надеюсь, что это поможет.