You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目编译报错:PackageManager.resolveActivity方法已废弃

Flutter编译错误:android_intent包废弃API触发编译失败

错误详情

C:\FlutterDev\flutter.pub-cache\hosted\pub.dartlang.org\android_intent-2.0.2\android\src\main\java\io\flutter\plugins\androidintent\IntentSender.java:87: warning: [deprecation] resolveActivity(Intent,int) in PackageManager has been deprecated
return packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null;
^
error: warnings found and -Werror specified
1 error
1 warning

构建失败,具体异常信息:
任务':android_intent:compileDebugJavaWithJavac'执行失败,编译过程出错。

解决方案

方案1:升级android_intent依赖包

在项目的pubspec.yaml中,将android_intent的版本更新至最新稳定版(需高于2.0.2),执行flutter pub get拉取新依赖。新版本已替换废弃的resolveActivity方法,改用适配高版本Android的API,消除编译警告。

方案2:禁用警告转错误的编译规则

若暂时无法升级依赖,可修改Android项目gradle配置关闭-Werror:

  • 打开android/app/build.gradle文件
  • 在android代码块内添加:
lintOptions {
    abortOnError false
}

或者仅针对android_intent模块禁用:
在android/build.gradle的subprojects块中添加:

subprojects {
    afterEvaluate { project ->
        if (project.name == 'android_intent') {
            tasks.withType(JavaCompile) {
                options.compilerArgs.remove("-Werror")
            }
        }
    }
}

方案3:手动修改依赖包代码

找到本地缓存的android_intent-2.0.2包路径(即错误提示中的路径),修改IntentSender.java第87行:
将

return packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null;

替换为

import android.os.Build;

// ... 原有代码 ...

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    return packageManager.resolveActivity(intent, PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY)) != null;
} else {
    return packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null;
}

内容的提问来源于stack exchange,提问作者Dev Salman khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:25:19