添加android_alarm_manager_plus后Flutter项目构建报错求助
Android构建报错:D8 NullPointerException 处理方案
问题描述
创建空Flutter项目并添加android_alarm_manager_plus依赖后,构建时出现以下报错:
注意: C:\Users\ALEX\AppData\Local\Pub\Cache\hosted\pub.dev\android_alarm_manager_plus-4.0.4\android\src\main\java\dev\fluttercommunity\plus\androidalarmmanager\AlarmService.java 使用或覆盖了已过时的API。 注意: 请使用 -Xlint:deprecation 重新编译以获取详细信息。 错误:C:\Users\ALEX\.gradle\caches\transforms-3\c1a2b6b5561495bcbfc5c4cf26e6c722\transformed\jetified-appcompat-resources-1.7.0-runtime.jar: D8: java.lang.NullPointerException 错误:C:\Users\ALEX\.gradle\caches\transforms-3\db2a3820c5429822d426817c25731a6c\transformed\appcompat-1.7.0-runtime.jar: D8: java.lang.NullPointerException 构建失败,出现异常。 * 出错原因: 任务 ':app:mergeExtDexDebug' 执行失败。 > 无法为配置 ':app:debugRuntimeClasspath' 解析所有文件。 > 无法转换 appcompat-resources-1.7.0.aar (androidx.appcompat:appcompat-resources:1.7.0) 以匹配属性 {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=24, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}。 > DexingNoClasspathTransform 执行失败: C:\Users\ALEX\.gradle\caches\transforms-3\c1a2b6b5561495bcbfc5c4cf26e6c722\transformed\jetified-appcompat-resources-1.7.0-runtime.jar。 > 转换dex文件时出错。 > 无法转换 appcompat-1.7.0.aar (androidx.appcompat:appcompat:1.7.0) 以匹配属性 {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=24, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}。 > DexingNoClasspathTransform 执行失败: C:\Users\ALEX\.gradle\caches\transforms-3\db2a3820c5429822d426817c25731a6c\transformed\appcompat-1.7.0-runtime.jar。 > 转换dex文件时出错。 * 尝试解决: > 使用 --stacktrace 选项获取堆栈跟踪。 > 使用 --info 或 --debug 选项获取更多日志输出。 > 使用 --scan 选项获取完整分析信息。 * 获取更多帮助请访问 https://help.gradle.org
解决方案
1. 清理Gradle缓存
- 找到路径
C:\Users\ALEX\.gradle\caches - 删除
transforms-3文件夹,或直接删除整个caches目录 - 重新执行
flutter run或 Android Studio中的构建命令
2. 降级依赖版本
在pubspec.yaml中修改android_alarm_manager_plus的版本为更稳定的旧版本:
dependencies: flutter: sdk: flutter android_alarm_manager_plus: ^3.0.1
执行flutter pub get更新依赖后重新构建。
3. 升级Gradle与构建工具版本
打开android/build.gradle文件,更新以下配置:
buildscript { ext.kotlin_version = '1.8.0' repositories { google() mavenCentral() } dependencies { // 升级到最新稳定版,例如7.4.2 classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
同时修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
同步Gradle配置后重新构建。
4. 启用核心库脱糖
在android/app/build.gradle的android块中添加脱糖配置:
android { // 其他配置... compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { // 其他依赖... coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }
同步配置后重新构建项目。
内容的提问来源于stack exchange,提问作者AVEbrahimi
相关产品推荐
相关产品推荐

