Ошибка связывания ресурсов Android - AAPT: ошибка: ресурс android: attr / dialogCornerRadius не найден

Я получаю сообщения об ошибках при попытке связать выпуск Android для проекта, поддерживающего реакцию. Этот проект следует преобразовать в AndroidX в качестве примечания.

Сообщения об ошибках

При попытке собрать сборку для Android я получаю следующие ошибки:

    * What went wrong:
Execution failed for task ':react-native-vector-icons:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > 1 exception was raised by workers:
     com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
     /Users/.../.gradle/caches/transforms-2/files-2.1/5c74eb36d229b35abeeb690f5d3b91a3/appcompat-1.0.0/res/values-v28/values-v28.xml:5:5-8:13: AAPT: error: resource android:attr/dialogCornerRadius not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/5c74eb36d229b35abeeb690f5d3b91a3/appcompat-1.0.0/res/values-v28/values-v28.xml:9:5-12:13: AAPT: error: resource android:attr/dialogCornerRadius not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/f54ae08833e39bf2b75fd420ffea65b9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/f54ae08833e39bf2b75fd420ffea65b9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.

Корневой файл Build.gradle

buildscript {
  ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0-alpha1"
    reactNativeVersion = "0.59.9"
  }
    repositories {
        jcenter()
         google()
        maven {
          url 'https://maven.google.com/'
          name 'Google'
        }
    }
    dependencies {
        classpath('com.android.tools.build:gradle:3.6.3')
        classpath 'com.google.gms:google-services:4.2.0'

        // Add the Crashlytics Gradle plugin.
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1'
    }
}

allprojects {
    repositories {
        google()
        mavenLocal()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url  "$rootDir/../node_modules/react-native/android"
        }
        // React native video - exoplayer missing from google repos, temp fix
        maven {
          url "https://google.bintray.com/exoplayer/"
        }
        jcenter()
    }
}

ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0-alpha1"
    reactNativeVersion = "0.59.9"
  }

subprojects {
  afterEvaluate {project ->
    if (project.hasProperty("android")) {
      android {
        compileSdkVersion compileSdkVersion
        buildToolsVersion "$buildToolsVersion"
      }
    }
  }
}

Файл приложения build.gradle

зависимости

dependencies {
    implementation project(':react-native-safe-area-context')
  implementation 'com.android.support:support-annotations:28.0.3'
  implementation "androidx.annotation:annotation:1.1.0"
  implementation project(':react-native-video')
    implementation(project(":react-native-google-signin"))
  implementation project(':react-native-splash-screen')
  implementation project(':react-native-iap')
  implementation project(':react-native-version-check')
  implementation project(':react-native-vector-icons')
  implementation project(':react-native-linear-gradient')
  implementation(project(':react-native-firebase')) {
        transitive = false
    }
  implementation project(':react-native-fbsdk')
  implementation project(':react-native-linear-gradient')
  implementation project(':react-native-vector-icons')
  implementation project(':react-native-fbsdk')
  implementation project(':react-native-vector-icons')
    // react-native-google-signin

    // react-native-fbsdk
  implementation 'com.facebook.android:facebook-android-sdk:4.33.0'
  implementation project(':react-native-fbsdk')

    // RNFirebase required dependencies
    implementation "com.google.firebase:firebase-core:16.0.9"
    implementation "com.google.android.gms:play-services-base:17.0.0"

    // RNFirebase optional dependencies
    implementation "com.google.firebase:firebase-auth:17.0.0"
    implementation "com.google.firebase:firebase-database:16.0.5"
    implementation "com.google.firebase:firebase-firestore:17.1.4"

    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation ("com.facebook.react:react-native:0.59.9") {force = true}  // From node_modules

    implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
}

Исследовательская работа

Я видел некоторые другие проблемы, связанные с этим, например:
React-native (android) AAPT: ошибка: ресурс android: attr / dialogCornerRadius не найден
https://fincoapps.com/error-resource-androidattr-dialogcornerradius-not-found/.

Однако они выглядят так, как вы ожидаете. Одна проблема предполагает редактирование подпроектов, которое существует в корневом файле build.gradle, но всегда возникают одни и те же сообщения об ошибках.

Редактировать

gradle-wrapper.properties

#Thu May 07 14:26:41 BST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
android.enableJetifier=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
android.useAndroidX=true

React-нативная информация

npmPackages:
  react: ^16.7.0 => 16.13.1 
  react-native: 0.59.9 => 0.59.9 
npmGlobalPackages:
  react-native-cli: 2.0.1

person StuartM    schedule 12.06.2020    source источник
comment
можешь добавить сюда gradle-wrapper.properties файл   -  person Muhammad Numan    schedule 15.06.2020
comment
пожалуйста, добавьте react-native info в вопросе   -  person Muhammad Numan    schedule 15.06.2020
comment
@MuhammadNuman добавил запрошенную информацию   -  person StuartM    schedule 15.06.2020


Ответы (1)


Решение 1:

  1. Проверьте, что все проекты React Native поддерживают androidX.
gradlew app:dependencies

Найдите в выходных данных androidX. Получите все библиотеки с androidx.

  1. Внесите изменения в build.gradle внутри android / app
configurations.all {
    resolutionStrategy { 
        force 'com.google.android.gms:play-services-gcm:16.1.0'
        force 'com.google.android.gms:play-services-basement:16.2.0'
        force 'com.google.android.gms:play-services-auth:16.0.1'
        force 'com.google.firebase:firebase-messaging:18.0.0'
        force 'com.google.firebase:firebase-common:17.0.0'        
        force 'com.google.firebase:firebase-iid:18.0.0'
        force 'com.google.android.gms:play-services-stats:16.0.1'
        force 'com.google.android.gms:play-services-base:16.0.1'
    }
}

Это были библиотеки, которые вызвали проблемы в моем проекте React Native. Google поддерживает все выпуски здесь https://developers.google.com/android/guides/releases#may_07_2019. Вы также можете выбрать любую другую версию. Это решение решило проблему в моем случае. Позвольте мне знать, если это помогает.

Решение 2

rm -rf android/.gradle
rm -rf .gradle
rm -rf ~/.gradle
./gradlew clean
person Muhammad Numan    schedule 15.06.2020
comment
Спасибо, где нужно изменить файл build.gradle. Корневой файл или приложение build.gradle. Кроме того, где следует вносить изменения в configurations.all, только в нижней части файла? Следует ли удалить все строки реализации? - person StuartM; 15.06.2020
comment
@StuartM перед зависимостями {} - person Muhammad Numan; 15.06.2020
comment
@StuartM, если решение 1 не работает, вы можете попробовать решение 2 в моем ответе - person Muhammad Numan; 15.06.2020