Flutter Android 14 强制升级说明 2024

Flutter Android 14 强制升级说明 2024

视频

https://youtu.be/ZPX_TshfRcU

https://www.bilibili.com/video/BV1am42137vj

前言

原文 https://ducafecat.com/blog/android-14-target-platform-requirements-2024

猫哥我也是心大,当群友问我 flutter 如何升级编译 Android 14 时才发现需要提交新版本。

请在 2024年8月31日之前更新您的目标 API 级别,以发布应用的更新

Android 14(API 级别 34)成为 Google Play 应用强制更新目标平台

原文链接:https://support.google.com/googleplay/android-developer/answer/11926878?hl=zh-Hans

意思是

自 2024 年 8 月 31 日起:

新应用和应用更新必须以 Android 14(API 级别 34)为目标平台,才能提交到 Google Play(Wear OS 应用和 Android TV 应用除外,此类应用必须以 Android 13 或更高版本为目标平台)。
现有应用必须以 Android 13(API 级别 33)或更高版本为目标平台,Google Play 才会在新用户的设备搭载的 Android OS 版本高于应用的目标 API 级别时,继续向这些用户提供此类应用。如果应用以 Android 12(API 级别 31)或更低版本(如果是 Wear OS 应用,则为 Android 10 或更低版本;如果是 TV OS 应用,则为 Android 11 或更低版本)为目标平台,则只能在搭载的 Android OS 版本不高于应用的目标 API 级别的设备上使用。
如果您需要更多时间来更新应用,可申请延期至 2024 年 11 月 1 日。今年晚些时候,您将能够在 Play 管理中心内找到应用的延期表单。

本文将会说下如何编译 Android 14, API 级别 34。

Google Play, Android 14, API 级别 34, 应用程序目标平台, 平台升级要求, Android OS 版本兼容性

参考

https://developer.android.com/about/versions/14?hl=zh-cn

https://play.google/developer-content-policy/

https://developer.android.com/about/dashboards?hl=zh-cn

https://support.google.com/googleplay/android-developer/answer/11926878?hl=zh-Hans

步骤

flutter 版本检查

❯ flutter --version

Flutter 3.16.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 41456452f2 (6 个月前)2024-01-25 10:06:23 -0800
Engine • revision f40e976bed
Tools • Dart 3.2.6 • DevTools 2.28.5

这个我项目的 flutter sdk 版本号本身没有太大的意义,只是给大家一个参考。

JDK 版本

Gradle JDK

从这张截图可以看出来,我用的是 runtime 17 的版本。

有的同学直接配置了系统全局,其实没必要,还会影响你其它应用的运行。

Android Studio 是支持这种单独指向的一个版本目录的。

Android SDK

SDK Platforms

SDK 版本选着好 Android 14 , API Level 34 。

SDK Tools

SDK Tools 我们选着 34.0.0 版本。

有的同学说看不到,你需要勾选右下角 Show Package Details 。

修改 build.gradle

文件 android/app/build.gradle

android {
    buildToolsVersion = '34.0.0'
    compileSdkVersion 34
  
    defaultConfig {
        minSdkVersion 34
        targetSdkVersion 34

参考我的配置,都改成 34。

最后编译

> flutter build appbundle
gradle.gradleVersion: 7.4
android.buildToolsVersion: 30.0.3
flutter.compileSdkVersion: 33
flutter.targetSdkVersion: 33
flutter.minSdkVersion: 19
flutter.ndkVersion: 23.1.7779620
Font asset "CupertinoIcons.ttf" was tree-shaken, reducing it from 283452 to 2112 bytes (99.3% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 8088 bytes (99.5% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
注: 某些输入文件使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
注: 某些输入文件使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
Warning: An API level of 34 is not supported by this compiler. Please use an API level of 32 or earlier
Running Gradle task 'bundleRelease'...                            113.0s
✓ Built build/app/outputs/bundle/release/app-release.aab (46.8MB).

不用理睬上面 flutter 的版本申明,我们在 build.gradle 中已经强制修改了。

新 app bundle

上传后可以看到已经满足要求,收工。

小结

Google Play 于 2024 年 8 月 31 日起正式实施新的应用程序目标平台要求:所有新发布和更新的应用必须以 Android 14(API 级别 34)或更高版本为目标平台。现有应用也需尽快升级至 Android 13 或更高版本。这一举措旨在提升用户体验,增强应用程序的安全性和兼容性。开发者可申请延期至 2024 年 11 月 1 日完成升级,届时 Google Play 将提供相关表单。开发者务必及时关注并响应这一新政策,以确保应用程序在 Google Play 上的持续可用性。

感谢阅读本文

如果有什么建议,请在评论中让我知道。我很乐意改进。


flutter 学习路径

  • Flutter 优秀插件推荐 https://flutter.ducafecat.com
  • Flutter 基础篇1 - Dart 语言学习 https://ducafecat.com/course/dart-learn
  • Flutter 基础篇2 - 快速上手 https://ducafecat.com/course/flutter-quickstart-learn
  • Flutter 实战1 - Getx Woo 电商APP https://ducafecat.com/course/flutter-woo
  • Flutter 实战2 - 上架指南 Apple Store、Google Play https://ducafecat.com/course/flutter-upload-apple-google
  • Flutter 基础篇3 - 仿微信朋友圈 https://ducafecat.com/course/flutter-wechat
  • Flutter 实战3 - 腾讯即时通讯 第一篇 https://ducafecat.com/course/flutter-tim
  • Flutter 实战4 - 腾讯即时通讯 第二篇 https://ducafecat.com/course/flutter-tim-s2

© 猫哥
ducafecat.com

end

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter Android v2 embedding 是 FlutterAndroid 平台上的第二种嵌入方式,它是在 Flutter 1.12 版本中引入的。相比于 v1 embedding,v2 embedding 提供了更好的性能和更灵活的集成方式。 升级到 v2 embedding 需要进行以下步骤: 1. 更新 Flutter SDK 到 1.12 版本或更高版本。 2. 在 Android 项目中添加以下依赖项: ``` dependencies { implementation 'com.google.android.material:material:1.2.1' implementation 'io.flutter:flutter_embedding_v2:1.0.0-rc.2' } ``` 3. 更改 Android 应用程序的启动方式,使用 `FlutterActivity` 代替 `FlutterActivityV1`,例如: ``` public class MainActivity extends FlutterActivity { // ... } ``` 4. 在 `AndroidManifest.xml` 文件中,将 `FlutterActivity` 的主题更改为 `Theme.AppCompat.Light.NoActionBar`,例如: ``` <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <meta-data android:name="io.flutter.embedding.android.NormalTheme" android:resource="@style/NormalTheme" /> </activity> ``` 5. 在 `MainActivity` 中,创建一个 `FlutterEngine` 对象,并将其传递给 `FlutterFragment` 或 `FlutterView`,例如: ``` public class MainActivity extends FlutterActivity { private FlutterEngine flutterEngine; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); flutterEngine = new FlutterEngine(this); FlutterFragment flutterFragment = FlutterFragment.withCachedEngine(flutterEngine).build(); getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, flutterFragment).commit(); } } ``` 这些步骤可以让你从 v1 embedding 升级到 v2 embedding,以获得更好的性能和更灵活的集成方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值