解决 Flutter 3.19.3打包app 在 OPPO 审核不通过的问题

解决 Flutter 3.19.3打包app 在 OPPO 审核不通过的问题


问题描述

在使用 Flutter 3.19.3 版本时,应用在启动时会调用 PROCESS_TEXT 相关的函数,而这个函数实际上是处理文本的。然而,在 OPPO 的审核过程中,这个调用导致了审核不通过。

通过对比发现,降级到 Flutter 3.16.2 后,不做任何代码修改,重新打包后审核通过。

问题根源

在 Flutter 3.19.3 版本中,启动时会调用以下函数,导致审核不通过:

Intent { act=android.intent.action.PROCESS_TEXT typ=text/plain }
at android.app.ApplicationPackageManager.queryIntentActivitiesAsUser()
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:914)
at io.flutter.plugin.text.ProcessTextPlugin.cacheResolveInfos(Unknown Source:53)
at io.flutter.plugin.text.ProcessTextPlugin.queryTextActions(Unknown Source:4)
at io.flutter.embedding.engine.systemchannels.ProcessTextChannel$1.onMethodCall(Unknown Source:45)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(Unknown Source:17)
at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(Unknown Source:18)
at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io_flutter-embedding-engine-dart-DartMessenger(Unknown Source:45)
at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6554)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:558)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)

代码的位置请添加图片描述

解决方案

1. 降级 Flutter 版本

首先,记录当前的 Flutter 版本为 3.19.3,方便后续恢复

请添加图片描述
然后降级到 Flutter 3.16.2,具体的 git 版本为 9e1c857886f07d342cf106f2cd588bcd5e031bb2

2. 修改3.19.3 Flutter 源码

降级后,某些新插件可能无法使用,所以我没有使用此种方式。为了快速解决问题,还是在3.19.3,我查看源码并进行以下修改:

  • 在 Flutter 层修改 editable_text.dart 文件,路径为 /flutter/packages/flutter/lib/src/widgets/editable_text.dart

  • 将以下行代码注释掉,这样引擎在启动时就不会自动初始化。由于应用没有使用到相关功能,直接注释即可。如果需要使用,可以将其修改为主动调用,交由上层去调用。

  • 请添加图片描述

// 文件:/flutter/packages/flutter/lib/src/widgets/editable_text.dart
// 注释掉相关的初始化代码

3. 提交审核

修改完成后,重新打包并提交审核。经过测试,问题解决,审核通过!

结语

此次问题的根源在于 Flutter 3.19.3 的启动行为影响了审核。通过降级和修改源码的方式,我们成功解决了问题。OPPO 的自测工具非常有用,推荐大家在提交审核前使用。自测工具地址


希望对您有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值