Не удалось создать экземпляр типа com.android.build.api.variant.impl.LibraryVariantBuilderImpl. [Трепетание]

Я продолжаю получать сообщение об ошибке при попытке запустить проект flutter в студии Android, раньше проект работал нормально на том же компьютере, но теперь выдает ошибку после нового формата ПК и студии Android с переустановкой других требований.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':wakelock'.
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
   > Namespace not specified. Please specify a namespace in the module's build.gradle file like so:

     android {
         namespace 'com.example.namespace'
     }

     If the package attribute is specified in the source AndroidManifest.xml, it can be migrated automatically to the namespace value in the build.gradle file using the AGP Upgrade Assistant; please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

Вот как текущий android/app/build.gradle выглядит так, как будто уже есть пространство имен, но оно все еще вызывает ту же ошибку

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

/*def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}*/

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}


android {
    namespace "com.generalomosco.myapp"
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.generalomosco.myapp"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion 24
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    /*implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"*/
}

настройки.gradle

pluginManagement {
    def flutterSdkPath = {
        def properties = new Properties()
        file("local.properties").withInputStream { properties.load(it) }
        def flutterSdkPath = properties.getProperty("flutter.sdk")
        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
        return flutterSdkPath
    }()

    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "8.0.2" apply false
    id "org.jetbrains.kotlin.android" version "1.7.10" apply false
}

include ":app"
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
525
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы обновили версию AGP (плагин Android Gradle). Это могло произойти, когда вы переустановили студию Android и использовали Помощник по обновлению. В любом случае, ваш AGP теперь имеет версию 8+, и у вас есть два пути:

  1. Перейдите в файл android/app/build.gradle вашего приложения (это также может быть build.gradle.kts), найдите блок Android и измените его следующим образом:
android {
    namespace = "com.example.myapp" # this should be your namespace from AndroidManifest.xml

... leave rest unchanged...
}
  1. Понизьте версию плагина Android Gradle до версии 7.*. Конкретные шаги зависят от вашей конфигурации, но обычно вам нужно android/build.gradle найти версию плагина gradle и изменить ее.

Удачи!

ОТРЕДАКТИРОВАНО:

Возможно, один из используемых вами пакетов устарел и не готов к использованию с современными версиями плагинов Android-gradle (8+). В данном конкретном случае это akelock

В этом случае вы либо понизите версию AGP, либо используете другой пакет. В этом случае это возможно с пакетом akelock_plus .

Пространство имен уже существует, но ошибка все равно

General Omosco 14.07.2024 11:23

Да, я виноват, извини. Что интересно, эта ошибка говорит о том, что проект «wakelock» вызывает проблему. Вы используете этот плагин? pub.dev/packages/wakelock

Sameri11 14.07.2024 11:50

У меня такое бывает, но с другим пакетом image_compression_flutter

OmarYehiaDev 14.07.2024 12:00

@OmarYehiaDev image_compression_flutter не имеет namespace в build.gradle, доказательстве. Я думаю, вам следует создать проблему в репозитории пакета или использовать другой пакет.

Sameri11 14.07.2024 12:15

Решено заменить устаревший Wakelock на Wakelock_plus, спасибо @Sameri11.

General Omosco 14.07.2024 13:58

Другие вопросы по теме