Найти в Дзене

Incorrect package found in source AndroidManifest.xml

После обновления gradle до версии 8.2.0 перестал собираться проект на flutter. В файл android/build.gradle нужно добавить ...
subprojects { // это, скорей всего, у вас уже есть
afterEvaluate { project ->
... if (project.hasProperty('android')) {
project.android {
if (namespace == null || namespace.isEmpty()) {
def defaultNamespace = project.group.toString().replace('.', '_')
namespace = defaultNamespace
}
buildFeatures {
buildConfig = true
}
}
// Task to ensure namespace and remove package attribute
project.tasks.register("fixManifestsAndNamespace") {
doLast {
// Ensure namespace in build.gradle
// def buildGradleFile = file("${project.projectDir}/build.gradle")
// if (buildGradleFile.exists()) {
// def buildGradle

После обновления gradle до версии 8.2.0 перестал собираться проект на flutter.

В файл android/build.gradle нужно добавить

...
subprojects { // это, скорей всего, у вас уже есть
afterEvaluate { project ->
...
if (project.hasProperty('android')) {
project.android
{
if (namespace == null || namespace.isEmpty()) {
def defaultNamespace = project.group.toString().replace('.', '_')
namespace = defaultNamespace
}

buildFeatures
{
buildConfig = true
}
}

// Task to ensure namespace and remove package attribute
project.tasks.register("fixManifestsAndNamespace")
{
doLast {
// Ensure namespace in build.gradle
// def buildGradleFile = file("${project.projectDir}/build.gradle")
// if (buildGradleFile.exists()) {
// def buildGradleContent = buildGradleFile.getText('UTF-8')
// def manifestFile = file("${project.projectDir}/src/main/AndroidManifest.xml")
// if (manifestFile.exists()) {
// def manifestContent = manifestFile.getText('UTF-8')
// def packageName = manifestContent.find(/package="([^"]+)"/) { match, p -> p }
// if (packageName && !buildGradleContent.contains("namespace")) {
// println "Setting namespace in ${buildGradleFile}"
// buildGradleContent = buildGradleContent.replaceFirst(
// /android\s*\{/, "android {\n namespace '${packageName}'"
// )
// buildGradleFile.write(buildGradleContent, 'UTF-8')
// }
// }
// }

// Remove package attribute from AndroidManifest.xml
def manifests = fileTree(dir: project.projectDir, includes: ['**/AndroidManifest.xml'])
manifests.each
{ File manifestFile ->
def manifestContent = manifestFile.getText('UTF-8')
if (manifestContent.contains('package=')) {
println "Removing package attribute from $
{manifestFile}"
manifestContent = manifestContent.replaceAll(/package="[^"]*"/, '')
manifestFile.write(manifestContent, 'UTF-8')
}
}
}
}

// Ensure the task runs before the build process
project.tasks.matching
{ it.name.startsWith("preBuild") }.all {
dependsOn project.tasks.named("fixManifestsAndNamespace")
}
}
...


Если не помогло, то раскомментируйте строки после

// Ensure namespace in build.gradle

После этого все заработало