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

保留Flutter V2.5.0升级targetSdkVersion 33后安装卡住,如何解决?

解决Flutter 2.5.0升级targetSdkVersion 33后安装/启动失败的问题

1. 适配Android Gradle插件(AGP)与Gradle版本

Flutter 2.5.0默认AGP版本不支持targetSdk 33,需升级到兼容版本:

  • 打开android/build.gradle,修改AGP版本为7.0.4(此版本与Flutter 2.5.0兼容且支持targetSdk 33):
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        // 保留其他原有依赖
    }
    
  • 同步修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
    

2. 配置targetSdkVersion与compileSdkVersion

在android/app/build.gradle中更新版本参数:

android {
    compileSdkVersion 33

    defaultConfig {
        applicationId "com.your.app.id"
        minSdkVersion 21 // 根据自身需求调整,不低于官方最低要求即可
        targetSdkVersion 33
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }
    // 保留其他原有配置
}

3. 修复Android 12+的android:exported属性要求

targetSdk 33属于Android 12+范畴,所有四大组件必须显式声明android:exported属性:

  • 打开android/app/src/main/AndroidManifest.xml,为主Activity添加android:exported="true"(启动页Activity同理):
    <activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- 保留其他原有配置 -->
    </activity>
    
  • 应用内其他组件(如自定义Service、BroadcastReceiver)需根据功能需求设置android:exported为true(允许外部调用)或false(仅内部使用)。

4. 添加Android 13+必要权限

targetSdk 33要求显式申请通知权限,否则可能引发启动异常:
在AndroidManifest.xml中添加:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

即使应用不需要通知功能,也建议添加该权限以规避权限缺失导致的启动问题。

5. 清理缓存并重建项目

执行以下命令彻底清理缓存后重新构建APK:

flutter clean
flutter pub get
cd android
./gradlew clean
cd ..
flutter build apk --release

6. 排查安装卡住的其他潜在原因

  • 确认设备已开启「未知来源应用安装」权限(Android 8+需手动开启);
  • 检查APK签名是否正确,避免因签名不匹配导致安装失败;
  • 通过Android Studio的Logcat过滤Error/Warning级别日志,定位具体启动失败原因(如某组件未配置exported导致的崩溃)。

内容的提问来源于stack exchange,提问作者Hoàng Hải Lương

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:15:36