如何在具有特定构建配置的React Native应用程序中将compileSdkVersion和targetSdkVersion从33更新到34?遇到 AAPT2 问题

问题描述 投票:0回答:1

我正在开发一个 React Native 项目,需要将compileSdkVersion 和 targetSdkVersion 从 33 更新到 34。以下是我的 build.gradle 文件和 gradle-wrapper.properties 中的当前配置:

android/build.gradle

buildscript {
    ext {
        buildToolsVersion = "31.0.0"
        minSdkVersion = 24
        compileSdkVersion = 34
        targetSdkVersion = 34
        firebaseMessagingVersion = "21.1.0"
        androidXCore = "1.6.0"
        ndkVersion = "21.4.7075529"
    }
    repositories {
        .....
    }
    dependencies {
        classpath('com.android.tools.build:gradle:4.1.3')
        classpath 'com.google.gms:google-services:4.3.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip

环境:

React Native 版本:0.63.5 NDK 版本:21.4.7075529

我尝试过的:

  1. 我尝试直接将compileSdkVersion和targetSdkVersion更改为34,但遇到了与AAPT2工具相关的构建错误。这是错误:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > AAPT2 aapt2-4.1.3-6503028-windows Daemon #0: Unexpected error during link, attempting to stop daemon.
     This should not happen under normal circumstances, please file an issue if it does.

  1. 我尝试将 Gradle 包装器升级到较新的版本(例如,distributionUrl=https://services.gradle.org/distributions/gradle-7.0-all.zip),但这导致了我当前设置的兼容性问题。
  2. 我考虑更新 Android Gradle 插件(类路径“com.android.tools.build:gradle:4.1.3”),但我不确定适合我现有依赖项的正确版本以及这是否可以解决问题.

问题

在我的 React Native 项目中将compileSdkVersion 和 targetSdkVersion 从 33 更新到 34,同时确保与我当前的构建设置兼容的最佳方法是什么?具体来说,我想要以下方面的指导:

  1. 我是否需要升级 buildToolsVersion、Gradle 版本或任何其他依赖项以支持 SDK 34。
  2. firebaseMessagingVersion、androidXCore 或任何其他依赖项需要进行哪些更改(如果有)以避免构建错误。 3.我应该采取任何其他步骤来确保顺利升级过程而不引入新的构建问题。
  3. 如果这个SDK升级可以在不升级react native的情况下完成。

预先感谢您的协助!

android react-native gradle build.gradle
1个回答
0
投票

您需要将 buildToolsVersion 更新为 34.0.0

buildToolsVersion = "34.0.0"

还必须要求将 com.android.tools.build:gradle 更新到 7.4.2

classpath('com.android.tools.build:gradle:7.4.2')

例如。

buildscript {
    ext {
        buildToolsVersion = "34.0.0"
        minSdkVersion = 24
        compileSdkVersion = 34
        targetSdkVersion = 34
        ndkVersion = "21.4.7075529"
        androidXCore = "1.6.0"
    }
    repositories {
        ...
    }
    dependencies {
        classpath('com.android.tools.build:gradle:7.4.2')
        ...
    }
}

它对我有用......!!!

完整步骤解决方案:https://stackoverflow.com/a/78927120/22258697

© www.soinside.com 2019 - 2024. All rights reserved.