React-Native Android Build Ошибка: не удалось выполнить задачу ":app:processDebugResources". Не удалось обработать ресурсы

Я не могу понять, что не так со сборкой. Я попробовал общие решения для запуска./gradlew clean и добавления android.enableAapt2=false в gradle.properties.

Папка google-services.json находится на уровне / android / app.

Я сейчас в растерянности относительно того, как пройти этот.

Если я забыл включить что-нибудь полезное, пожалуйста, lmk, и я обновлю.

ура

Ошибка вывода

Настройка проекта: приложение ПРЕДУПРЕЖДЕНИЕ. Указанная версия Android SDK Build Tools (26.0.1) игнорируется, так как она ниже минимально поддерживаемой версии (27.0.3) для Android Gradle Plugin 3.1.3. Будут использованы инструменты сборки Android SDK 27.0.3. Чтобы подавить это предупреждение, удалите "buildToolsVersion '26.0.1'" из своего файла build.gradle, поскольку каждая версия подключаемого модуля Android Gradle теперь имеет версию инструментов сборки по умолчанию. Не удалось найти google-services.json при поиске в [src/nullnull/debug, src/debug/nullnull, src/nullnull, src/debug, src/nullnullDebug] registerResGeneratingTask устарела, используйте registerGeneratedResFolders (не найдена) services.json при поиске в [src / nullnull / release, src / release / nullnull, src / nullnull, src / release, src / nullnullRelease] registerResGeneratingTask устарела, используйте registerGeneratedResFolders(FileCollection)

Настроить проект: response-native-google-analytics-bridge ВНИМАНИЕ: Конфигурация 'compile' устарела и была заменена на 'реализация' и 'api'. Он будет удален в конце 2018 года. Для получения дополнительной информации см.: http://d.android.com/r/tools/update-dependency-configurations.html

Настроить проект: response-native-radar. ПРЕДУПРЕЖДЕНИЕ. Конфигурация 'compile' устарела и была заменена на 'реализация' и 'api'. Он будет удален в конце 2018 года. Для получения дополнительной информации см.: http://d.android.com/r/tools/update-dependency-configurations.html

Задача:app:processDebugGoogleServices. Анализ файла json: /Users/kyletreman/18F/courier_test_app/android/app/google-services.json.

/Users/kyletreman/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.0.1.aar/64df69838d7c555de168bdcf18f3be5c/res/values/values.xml:113:5-69: AAPT: ошибка: ресурс android:attr/fontVariationSettings не найден.

/Users/kyletreman/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.0.1.aar/64df69838d7c555de168bdcf18f3be5c/res/values/values.xml:113:5-69: AAPT: ошибка: ресурс android:attr/ttcIndex не найден.

ошибка: не удалось связать ссылки.

FAILURE: сборка не удалась, исключение.

  • Что пошло не так: выполнение задачи не выполнено: "app: processDebugResources". Не удалось обработать ресурсы, см. Подробности в выводе aapt выше.

  • Попробуйте: Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить больше вывода журнала. Запустите с --scan, чтобы получить полное представление.

  • Получить дополнительную помощь на https://help.gradle.org/

СБОЙ ПО СОЗДАНИЮ в 2 с 50 выполнимых задач: 3 выполнено, 47 актуальных. Не удалось установить приложение на устройство, ознакомьтесь с информацией об ошибке выше. Убедитесь, что у вас запущен эмулятор Android или подключено устройство, и вы настроили среду разработки Android: https://facebook.github.io/react-native/docs/getting-started.html

/android/app/build.gradle

android {
compileSdkVersion 27
buildToolsVersion "27.0.3"

defaultConfig {
    applicationId "com.courier_test_app.app"
    minSdkVersion 16
    targetSdkVersion 27
    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 {
implementation(project(':react-native-firebase')) {
    transitive = false
}
implementation 'com.google.firebase:firebase-core:16.0.0'
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'com.android.support:support-v13:27.1.1'
implementation "com.facebook.react:react-native:+"  // From node_modules
implementation project(':react-native-radar')
implementation project(':react-native-google-analytics-bridge')
}

// 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'
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

/android/build.gradle

buildscript {
repositories {
    jcenter()
    google()
}
dependencies {
    classpath 'com.google.gms:google-services:4.0.0'
    classpath 'com.android.tools.build:gradle:3.1.3'

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

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

configurations.all {
resolutionStrategy {
    force 'com.android.support:support-v4:27.1.0'
}
}

3 ответа

Решение

Из журнала ошибок я вижу, что appcompat-v7-23.0.1 все еще используется. Таким образом, это, вероятно, поможет обновить ResolutionStrategy:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
        force 'com.android.support:appcompat-v7-23.0.1'
    }
}

Также вам нужно поместить этот блок стратегии разрешения в ваш app/build.gradle

Исправлена

Мне удалось получить помощь от кого-то, знакомого с родной стороной, и он помог мне разобраться с множеством ошибок.

  • порядок выполнения имеет значение, это был заказ, который работал для меня

    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation "com.android.support:support-v4:27.1.1"
    implementation 'com.android.support:support-v13:27.1.1'
    implementation "com.android.support:appcompat-v7:27.1.1"
    implementation(project(':react-native-firebase'))
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation project(':react-native-radar')
    implementation project(':react-native-google-analytics-bridge')
    
  • Мне нужно перенести стратегии разрешения конфигурации в файл android / app / build.gradle, мой был на неправильном уровне. Мне также пришлось изменить версии пакетов поддержки и appcompat. Вы можете найти зависимости через

    ./gradlew app:dependencies 
    

    из папки андроида. Проблема заключалась в том, что одной из зависимостей было вытягивание более старой версии, которая была исправлена ​​с помощью следующего в ResolutionStrategies.

    force 'com.android.support:appcompat-v7:27.1.1'
    
  • Следующим изменением, которое нужно было сделать, была следующая строка в MainApplication.java

       return BuildConfig.DEBUG;
    

    к этому

       return <app_name>.BuildConfig.DEBUG;
    
  • Я также удалил enableaapt2=false

Последний совет, который я могу дать, заключается в том, что наименование имеет значение, не переименовывайте свое приложение, если оно не является абсолютно необходимым, и убедитесь, что оно изменяется в файлах Main java и AndroidMainfest.xml.

ОБНОВЛЕНО

  • Я понял, что мой отладчик не подключался, потому что я удалил некоторые пакеты реализации, которые поддерживали firebase, добавив их обратно, исправил проблему. Добавьте следующее ниже реализации Firebase.

    implementation "com.google.android.gms:play-services-base:15.0.1"
    implementation "com.google.firebase:firebase-core:16.0.1"
    

Поместите этот код в конец android/build.gradle, используйте ваши собственные номера для compileSdkVersion и buildToolsVersion

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