在 React Native 0.59 上将目标 sdk 升级到 29

Posted

技术标签:

【中文标题】在 React Native 0.59 上将目标 sdk 升级到 29【英文标题】:Upgrading target sdk to 29 on React Native 0.59 【发布时间】:2020-11-29 00:49:08 【问题描述】:

我当前在 React Native 上的 android target sdk 是 28,但 Play Store 显示将其更新到 29。 于是我在 android/build.gradle 中做了如下改动

buildscript 

    ext 
       googlePlayServicesVersion = "16.0.0"
        firebaseVersion = "17.3.4"
        buildToolsVersion = "28.0.3" //changed to 29.0.3
        minSdkVersion = 16
        compileSdkVersion = 28 //changed to 29
        targetSdkVersion = 28 // changed to 29
        supportLibVersion = "28.0.0"
    

但是现在当我运行 npx react-native run-android 我得到以下错误。

Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not find com.android.support:support-v4:29.0.0.
  Required by:
      project :app
      project :app > project :react-native-firebase
> Could not find com.android.support:support-v4:29.0.0.
  Required by:
      project :app > com.google.android.gms:play-services-basement:16.2.0

我正在使用 react-native-firebase v5

【问题讨论】:

这方面有什么更新吗?在这里遇到同样的问题 您正在使用 supportLibVersion = "28.0.0" 将其更改为 29.0.0。如果它仍然显示错误而不是添加 29 的可用版本 没有支持库 29.需要迁移到androidX。 【参考方案1】:

按照以下步骤操作:-

在您的 React Native 项目中打开 android/build.gradle。 然后递增compileSdkVersiontargetSdkVersion 值 致29

android/build.gradle

   buildscript 
       ext 
           buildToolsVersion = "28.0.3"
           minSdkVersion = 16
           compileSdkVersion = 29
           targetSdkVersion = 29
       
       // ...
   

   allprojects 
    // ...
   
然后在 Android Studio 中,运行“使用 Gradle 文件同步项目”(File > Sync Project with Gradle Files)。

你应该准备好了。

【讨论】:

以上是关于在 React Native 0.59 上将目标 sdk 升级到 29的主要内容,如果未能解决你的问题,请参考以下文章

Apple 在升级到 React Native 0.59 后拒绝了二进制文件(2.3.1 - 性能)

记一次 React Native 大版本升级过程——从0.40到0.59

react-native打包apk常见错误收集

React-Native Metro 捆绑器无法提供任何文件

React-Native:在 Android 10 和 9(API 28 和 29)dalvik.system.BaseDexClassLoader.findClass 上崩溃

RN 从上手到“放弃”