在React Native中将Android API级别升级到34 | 作者:Ats - Medium

作者:API传播员 · 2025-12-22 · 阅读时间:4分钟
本文分享了在React Native项目中使用Expo将Android API级别升级到34的实践经验,包括构建失败和全屏意图权限问题的解决方法。通过升级最低SDK版本到24和删除AndroidManifest.xml中的全屏意图权限声明,成功通过Google Play审核。

在React Native中将Android API级别升级到34的实践经验

在本文中,我将分享如何在使用Expo开发的React Native项目中,将Android API级别升级到34的过程中遇到的问题及其解决方法。希望这些经验能为面临类似问题的开发者提供帮助。


升级SDK版本的初始尝试

在我的React Native项目中,我收到了一条来自Google Play控制台的通知,提示需要将应用程序的Android API级别升级到34。虽然我通常会等待一段时间,观察其他开发者的解决方案,但这次在截止日期前两周,我决定开始着手处理这个任务。

首先,我在项目的android/build.gradle文件中,将编译SDK和目标SDK版本都升级到了34。通常情况下,我会将这两个版本设置为相同的值。当然,如果需要,也可以为每个SDK设置不同的版本。

升级完成后,我尝试将新版本上传到Google Play控制台,但却遇到了以下错误:

> Task :app:mergeExtDexDebug FAILED
ERROR:D8: com.android.tools.r8.kotlin.H

FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':app:mergeExtDexDebug'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Failed to transform play-services-measurement-api-22.0.0.aar (com.google.android.gms:play-services-measurement-api:22.0.0) to match attributes {artifactType=android-dex, asm-transformed-variant=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=21, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Execution failed for DexingWithClasspathTransform: /Users/ats/.gradle/caches/transforms-3/[...]/transformed/jetified-play-services-measurement-api-22.0.0-runtime.jar.
> Error while dexing.

解决初始错误

面对上述错误,我尝试在网上搜索解决方案,但未能找到直接的答案。随后,我在GitHub上找到了一些相关的讨论,虽然这些讨论的具体场景与我的问题并不完全相同,但错误信息和解决方法却非常相似。

根据这些讨论的建议,我将项目的最低SDK版本升级到了24。再次尝试构建后,之前的错误消失了。但很快,我又遇到了另一个问题:

[14:42:10]: fastlane finished with errors

[!] Google Api Error: Invalid request - You must let us know whether your app uses any full-screen intent permissions

处理全屏意图权限问题

通过快速搜索“全屏意图权限”,我了解到从Android API 34级开始,全屏意图权限默认被激活。如果应用程序使用了该权限,就需要在Google Play控制台上声明其使用情况。这正是导致上述错误的原因。

在我的项目中,我使用了“notifee”包来定制通知。进一步调查后发现,该包会自动添加全屏意图权限。然而,我的应用并未使用全屏通知功能,因此不需要该权限。

根据GitHub上的建议,我在项目的AndroidManifest.xml文件中删除了相关的全屏意图权限声明。修改完成后,我再次上传了应用程序,这次审核顺利通过,Google Play控制台上的错误消息也随之消失。


总结

在将React Native项目的Android API级别升级到34的过程中,我主要遇到了以下两个问题:

  1. 构建失败问题:通过将最低SDK版本升级到24解决。
  2. 全屏意图权限问题:通过删除AndroidManifest.xml中的相关权限声明解决。

完成这些调整后,我成功地将应用程序上传到了Google Play控制台,并通过了审核。如果你在升级API级别时遇到类似问题,希望本文的经验能为你提供参考。


原文链接: https://atsss.medium.com/upgrade-android-api-level-to-34-on-react-native-838d44c7e1ba