Сборка настроек Android TV не удалась из-за 'error: дублирующее значение для ресурса' attr / direction 'с config' '.' - PullRequest
0 голосов
/ 28 марта 2019

Я хочу создать приложение Настройки Android TV, которое я клонирую из Google Git репозиторий . Я использую Android Studio 3.3.2, версия Gradle автоматически адаптируется к выпуску SDK.

Сначала я попытался автоматически сгенерировать новый gradle-проект из каталога TvSettings / Settings. Он никогда не строил по разным причинам. Теперь я пытаюсь создать новый проект Gradle, как указано здесь раздел «Миграция путем создания пользовательского файла сборки Gradle».

В дереве файлов TvSettings / Settings, которое я клонировал из репозитория Git, я добавляю 3 символические ссылки (в каталогах res и com и файле AndroidManifest.xml), чтобы соответствовать ожиданиям дерева файлов Gradle

Затем я добавляю файл build.gradle на уровне проекта (я добавляю его содержимое в нижней части этого потока, может быть, это действительно неправильно, поскольку я не очень привык генерировать с Gradle).

Сборка завершается с предупреждением и двумя ошибками. Просто посмотрите:

Android resource compilation failed
build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1077: warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?.
build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1580: error: duplicate value for resource 'attr/orientation' with config ''.
build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1580: error: resource previously defined here.

Я пробовал много вещей: - чистый - сделать кеш недействительным и перезапустить - резко ограничить количество библиотек - указать разные версии API (23, 26 и 18), связанные с правильными выпусками библиотеки

Как я могу решить эту проблему?

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Что ж, я решил эту проблему, используя ссылки на библиотеки, которые перечислены в файле Android.mk модуля настроек.

Правильный список библиотек:

implementation 'com.android.support:recyclerview-v7:28.0.0-beta01'
implementation 'com.android.support:preference-v7:28.0.0-beta01'
implementation 'com.android.support:appcompat-v7:28.0.0-beta01'
implementation 'com.android.support:preference-v14:28.0.0-beta01'
implementation 'com.android.support:preference-leanback-v17:28.0.0-beta01'
implementation 'com.android.support:leanback-v17:28.0.0-beta01'
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'android.arch.lifecycle:common-java8:1.1.1'
0 голосов
/ 28 марта 2019

uildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23

    defaultConfig {
        applicationId "com.android.tv.settings"
        minSdkVersion 23
        targetSdkVersion 23
        vectorDrawables.useSupportLibrary = true
    }

    sourceSets {
        main {
            manifest.srcFile 'app/AndroidManifest.xml'
            java.srcDirs = ['app/src']
            resources.srcDirs = ['app/src']
            aidl.srcDirs = ['app/src']
            renderscript.srcDirs = ['app/src']
            res.srcDirs = ['app/res']
            assets.srcDirs = ['app/assets']
        }

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:gridlayout-v7:23.0.0'
}
...