Ошибка android studio 3.0: атрибут стиля '@android: attr / windowEnterAnimation' не найден

Я выполнил шаги по переходу на обновление до Android Studio 3.0.

build.gradle

    flavorDimensions 'dimensionless'

D: \ R \ merchant \ projapp \ popuplibrary \ build \ intermediate \ bundles \ debug \ res \ values ​​\ values.xml Ошибка: (28, 5) ошибка: атрибут стиля '@android: attr / windowEnterAnimation' не найден.
C: \ Users \ user.gradle \ caches \ transforms-1 \ files-1.1 \ appcompat-v7-25.3.1.aar \ f7bb6db2aa55d14683d1c9ddd8d49e03 \ res \ values ​​\ values.xml Ошибка: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: подробные сведения см. в журналах
Ошибка: сбой при выполнении задачи ': popuplibrary: processDebugAndroidTestResources'. Не удалось выполнить aapt

Столкнувшись с той же проблемой, но в моем случае это библиотека apccompat, которая также создает проблему.

​​атрибут стиля '@android: attr / windowEnterAnimation' не найден


gradlewrapper:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Приложение build.gradle:

   productFlavors {
                dev {
                    applicationIdSuffix '.dev'
                    versionName "1.0"
                    versionNameSuffix '-dev'
                    }
qa {
                    applicationIdSuffix '.qa'
                    versionName "1.0"
                    versionNameSuffix '-qa'
                    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })


    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:cardview-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    //Butter Knife
    compile 'com.jakewharton:butterknife:8.7.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'

    compile project(':popuplibrary')
}

person AskQ    schedule 31.10.2017    source источник
comment
Можете ли вы предоставить свои gradle.properties, gradle.app?   -  person    schedule 31.10.2017
comment
обновлено в вопросе   -  person AskQ    schedule 31.10.2017
comment
Спасибо, также build.gradle (приложение), позвольте мне проверить ваши зависимости и вашу реализацию на предмет вкусов.   -  person    schedule 31.10.2017


Ответы (4)


Эта проблема описана в руководстве по миграции для Плагин Android Gradle 3.0.0.

Неправильное использование справочных символов @ ресурсов

AAPT2 теперь выдает ошибки сборки, когда вы опускаете или неправильно размещаете символы ссылки на ресурсы (@). Например, подумайте, не пропустите ли вы символ при указании атрибута стиля, как показано ниже:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  ...
  <!-- Note the missing '@' symbol when specifying the resource type. -->
  <item name="colorPrimary">color/colorPrimary</item>
</style>

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

ERROR: expected color but got (raw string) color/colorPrimary

Кроме того, подумайте, если вы неправильно включаете символ при доступе к ресурсу из пространства имен Android, как показано ниже:

...
<!-- When referencing resources from the 'android' namespace, omit the '@' symbol. -->
<item name="@android:windowEnterAnimation"/>

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

Error: style attribute '@android:attr/windowEnterAnimation' not found

Если вы не совершили ошибку, описанную во второй половине, то, возможно, виновата старая версия appcompat-v7.

Добро

Обновите библиотеки поддержки до более новых, выберите 25.4.0, 26.1.0 или 27.0.0. Убедитесь, что вы соответствуете compileSdkVersion.

Примечание. Если вы решите выполнить обновление до версии старше 27.0.0, вы можете столкнуться с этой проблемой.

Плохо

Если по какой-то причине вы застряли на 25.3.1 или более ранней версии, вы можете отключить AAPT2.

Если у вас возникли проблемы при использовании AAPT2, вы можете отключить его, установив android.enableAapt2=false в вашем gradle.properties файле и перезапустив демон Gradle, запустив ./gradlew --stop из командной строки.

person Eugen Pechanec    schedule 31.10.2017
comment
gradle.properties или gradle.wrapper.properties - person Dr. aNdRO; 03.07.2018

Попробуйте использовать блок subprojects {} в android / build.gradle и установите последние версии android compileSdkVersion и buildToolsVersion, используемые в основном проекте, чтобы подпроекты также использовали эти версии.

Пример

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion "27.0.3"
            }
        }
    } }
person Olivier    schedule 18.09.2018

Добавление android.enableAapt2=false в файл gradle.properties устраняет эту проблему.

person Makvin    schedule 10.12.2018
comment
ПРЕДУПРЕЖДЕНИЕ. Следующие параметры проекта устарели и были удалены: android.enableAapt2 Это свойство не действует, теперь всегда используется AAPT2. - person B-GangsteR; 05.02.2019

В моем случае я удалил / обновил thebuildToolsVersion "27.0.3" в build.gradle.

person Praneeth Jayarathna    schedule 25.03.2020