Flutter 3.29+使用isar构建失败

执行命令:flutter build apk --release

报错

复制代码
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!

FAILURE: Build failed with an exception.                                                                                                                                    

* What went wrong:                                                                                                                                                          
A problem occurred configuring project ':isar_flutter_libs'.                                                                                                                
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.                                                                        
   > Namespace not specified. Specify a namespace in the module's build file: C:\Users\17602\AppData\Local\Pub\Cache\hosted\pub.flutter-io.cn\isar_flutter_libs-3.1.0+1\android\build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.

     If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant.

* Try:                                                                                                                                                                      
> Run with --stacktrace option to get the stack trace.                                                                                                                      
> Run with --info or --debug option to get more log output.                                                                                                                 
> Run with --scan to get full insights.                                                                                                                                     
> Get more help at https://help.gradle.org.                                                                                                                                 

BUILD FAILED in 1s                                                                                                                                                          
Running Gradle task 'assembleRelease'...                         1,292ms
Gradle task assembleRelease failed with exit code 1
  1. 然后参考:https://github.com/isar/isar/issues/1672

在\android\build.gradle.kts文件中添加以下代码

复制代码
// 添加这部分代码,且当前subprojects 必须是当前文件的第一个subprojects块
subprojects {
    afterEvaluate {
        project.extensions.configure<com.android.build.gradle.BaseExtension> {
            if (namespace == null) namespace = project.group.toString()
        }
    }
}

再次尝试构建,发现会提示另一个错误:

复制代码
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':isar_flutter_libs:verifyReleaseResources'.
A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
Android resource linking failed
ERROR:E:......\build\isar_flutter_libs\intermediates\merged_res\release\values\values.xml:194: AAPT: error: resource android:attr/lStar not found.

Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org
  1. 最后再另一个issue里面找到了解决方案:
    https://github.com/isar/isar/issues/1681
    使用以下subprojects 区块代码,替换\android\build.gradle.kts里的所有subprojects 区块
kts 复制代码
subprojects {
    val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
    project.layout.buildDirectory.value(newSubprojectBuildDir)
}

subprojects {
    afterEvaluate {
        if (project.hasProperty("android")) {
            val androidExtension = project.extensions.findByName("android")
            if (androidExtension is com.android.build.gradle.BaseExtension) {
                androidExtension.compileSdkVersion = "android-35"
                androidExtension.buildToolsVersion = "35.0.0"
                androidExtension.ndkVersion = "27.0.12077973"
                if (androidExtension.namespace == null) {
                    androidExtension.namespace = project.group.toString()
                }
            }
        }
    }
}

subprojects {
    project.evaluationDependsOn(":app")
}

最后再执行构建命令就可以成功构建了

但是后来发现isar在github上已经两年多没更新了,遂切换其他本地数据库

相关推荐
不会写代码0009 分钟前
Flutter 框架跨平台鸿蒙开发 - 全国景区门票查询应用开发教程
flutter·华为·harmonyos
秦拿希42 分钟前
【paimon-trino】trino整合paimon元数据访问s3
大数据·trino·paimon
kuankeTech1 小时前
解决内外贸双轨制难题,外贸ERP智能引擎同步管理国内外合规与标准
大数据·人工智能·数据可视化·软件开发·erp
kirk_wang1 小时前
Flutter艺术探索-Riverpod深度解析:新一代状态管理方案
flutter·移动开发·flutter教程·移动开发教程
猛扇赵四那边好嘴.1 小时前
Flutter 框架跨平台鸿蒙开发 - 旅行规划助手应用开发教程
flutter·华为·harmonyos
q_35488851532 小时前
AI大模型:python新能源汽车推荐系统 协同过滤推荐算法 Echarts可视化 Django框架 大数据毕业设计(源码+文档)✅
大数据·人工智能·python·机器学习·信息可视化·汽车·推荐算法
2501_944424124 小时前
Flutter for OpenHarmony游戏集合App实战之俄罗斯方块七种形状
android·开发语言·flutter·游戏·harmonyos
CheungChunChiu5 小时前
Flutter 在嵌入式开发的策略与生态
linux·flutter·opengl
小白阿龙6 小时前
鸿蒙+flutter 跨平台开发——汇率查询器开发实战
flutter·华为·harmonyos·鸿蒙
一只专注api接口开发的技术猿7 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构