Мне действительно трудно понять, почему мой проект не может найти символ ‘Theme.Material3.DayNight.NoActionBar’

Вопросы и ответы

Я новичок здесь, и хотя я провел последние 3 вечера, пытаясь решить эту проблему, я потерял всякую надежду справиться с этим самостоятельно…

Я пытаюсь использовать ‘Theme.Material3.DayNight.NoActionBar’ в качестве родительского стиля для своего пользовательского стиля, но Android Studio Koala Feature Drop не может разрешить этот символ.

Вот несколько копий моего проекта на данный момент:

build.gradle.kts(:app)

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
}

android {
    namespace = "com.example.training"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.training"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.1"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

dependencies {

    implementation(libs.androidxAppCompat)
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.lifecycle.runtime.ktx)
    implementation(libs.androidx.activity.compose)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.ui)
    implementation(libs.androidx.ui.graphics)
    implementation(libs.androidx.ui.tooling.preview)
    implementation(libs.androidx.material3)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(libs.androidx.ui.test.junit4)
    debugImplementation(libs.androidx.ui.tooling)
    debugImplementation(libs.androidx.ui.test.manifest)

}

libs.versions.toml

[versions]
agp = "8.6.0"
kotlin = "1.9.0"
coreKtx = "1.13.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
lifecycleRuntimeKtx = "2.8.5"
activityCompose = "1.9.2"
composeBom = "2024.09.01"
material3 = "1.3.0"
androidxAppCompat = "1.7.0"

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-material3 = { group = "androidx.compose.material3", name ="material3", version.ref = "material3" }
androidxAppCompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat"}

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Базовая тема приложения -->
    <style name="Theme.Training" parent="Theme.Material3.DayNight.NoActionBar">

        <!-- Основные и акцентные цвета -->
        <item name="colorPrimary">@color/colorPrimary</item>

        <item name="colorPrimaryVariant">@color/colorPrimaryVariant</item>

        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:colorBackground">@android:color/white</item>

    </style>
</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Training"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@style/Theme.Training">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Не могли бы вы взглянуть и помочь мне в верном направлении?

Я пытался найти все возможные ответы в документации, в поиске Google и т.д… чистка, пересборка, синхронизация gradle, перезапуск AS, разные зависимости, дополнительные зависимости и так далее…

Ответ

Проблема с разрешением символа Theme.Material3.DayNight.NoActionBar может возникать по нескольким причинам, связанным с настройками вашего проекта в Android Studio. Давайте разберём несколько возможных решений:

1. Проверьте версии библиотек

Убедитесь, что у вас установлена правильная версия библиотеки Material3. В вашем файле libs.versions.toml вы указали:

androidx-material3 = { group = "androidx.compose.material3", name ="material3", version.ref = "material3" }

При этом указанная версия 1.3.0 должна поддерживать тему Material3. Проверьте, что вы используете актуальную версию библиотеки. В последний раз проверяйте на официальной странице Material3.

2. Подключите правильный пакет

Проверьте, что вы импортируете правильный пакет в вашем моменте зависимостей. Вам нужен пакет androidx.compose.material3, а не androidx.material3. Ваш код уже верный:

implementation(libs.androidx.material3)

3. Проверьте настройки Gradle

Убедитесь, что в файле build.gradle.kts корректно указаны параметры компиляции и используемый SDK.

  • Убедитесь, что compileSdk у вас установлен на 34 (в вашем случае это верно).
  • Проверьте, что minSdk не ниже 24.

Ваша конфигурация в целом выглядит правильно, но убедитесь, что у вас нет опечаток в зависимостях.

4. Очистка и пересборка проекта

Если вы уже пробовали очистку и пересборку проекта, но проблема сохраняется, выполните следующие шаги:

  1. Закройте Android Studio.
  2. Перейдите в папку проекта и удалите папки .gradle, build и .idea.
  3. Запустите Android Studio и откройте проект заново.
  4. Синхронизируйте Gradle.

5. Проверка cache и синхронизации

Попробуйте выполнить следующие команды в терминале, чтобы очистить кеш и повторно синхронизировать:

./gradlew clean
./gradlew build --refresh-dependencies

6. Убедитесь в правильности xml

В вашем themes.xml проверьте, что используете правильный синтаксис:

<resources>
    <style name="Theme.Training" parent="Theme.Material3.DayNight.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryVariant">@color/colorPrimaryVariant</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:colorBackground">@android:color/white</item>
    </style>
</resources>

Заключение

Если вы выполнили все вышеперечисленные шаги и проблема всё еще возникает, возможно, стоит проверить, нет ли проблем с установкой Android Studio или самой SDK. Обновите Android Studio до последней версии и убедитесь, что все установленные инструменты SDK актуальны.

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

Надеюсь, эти советы помогут вам решить проблему!

Оцените материал
Добавить комментарий

Капча загружается...