You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native构建Android Release APK时遇依赖下载及栈溢出错误求助

React Native 构建Release APK失败问题排查与解决

问题背景

在创建Android Release APK时执行以下步骤后构建失败:

  1. 生成密钥库(路径:<项目名>/android/app):
keytool -genkey -v -keystore NewsApp.keystore -alias NewsApp -keyalg RSA -keysize 2048 -validity 10000
  1. 配置android/app/build.gradle签名信息:
    添加签名配置:
signingConfigs {
    release {
        storeFile file('NewsApp.keystore')
        storePassword 'NewsApp123'
        keyAlias 'NewsApp'
        keyPassword 'NewsApp123'
    }
}

配置Release构建使用该签名:

buildTypes {
    debug {
        ...
    }
    release {
        .....
        signingConfig signingConfigs.release
        .....
    }
}
  1. 执行构建命令:
cd android 
./gradlew assembleRelease

错误信息

构建过程中出现两个失败任务:

Configure project :lottie-react-native
WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the gradle.properties file or use the new publishing DSL.

Task :react-native-async-storage_async-storage:generateReleaseRFile FAILED

FAILURE: Build completed with 2 failures.

第一个错误

  • 问题原因:
    Execution failed for task ':react-native-async-storage_async-storage:generateReleaseRFile'.

Could not resolve all files for configuration ':react-native-async-storage_async-storage:releaseCompileClasspath'.

Failed to transform react-android-0.71.3-release.aar (com.facebook.react:react-android:0.71.3) to match attributes {artifactType=android-symbol-with-package-name, com.android.build.api.attributes.BuildTypeAttr=release, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-api}.
Could not download react-android-0.71.3-release.aar (com.facebook.react:react-android:0.71.3)
Could not get resource 'https://repo.maven.apache.org/maven2/com/facebook/react/react-android/0.71.3/react-android-0.71.3-release.aar'.
Could not GET 'https://repo.maven.apache.org/maven2/com/facebook/react/react-android/0.71.3/react-android-0.71.3-release.aar'.
No such host is known (repo.maven.apache.org)

第二个错误

  • 问题原因:
    java.lang.StackOverflowError (no error message)

解决方案

针对第一个错误(Maven仓库无法访问)

核心问题是无法解析repo.maven.apache.org主机,说明网络无法连接到Maven中央仓库,解决步骤:

  • 检查本地网络连接,确认能正常访问外网,可在浏览器打开Maven中央仓库地址验证连通性。
  • 若网络正常仍无法访问,在项目android/build.gradle中替换为国内Maven镜像(如阿里云),修改buildscript和allprojects的仓库配置:
    buildscript {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
        // 其他原有配置保留
    }
    
    allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            google()
            mavenCentral()
            maven { url "$rootDir/../node_modules/react-native/android" }
            maven { url "$rootDir/../node_modules/jsc-android/dist" }
        }
    }
    
  • 清理Gradle缓存并刷新依赖:
    ./gradlew clean build --refresh-dependencies
    

针对第二个错误(StackOverflowError)

该错误通常与Gradle内存不足或依赖冲突有关,解决步骤:

  • 修改android/gradle.properties文件,增大JVM堆内存:
    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    
  • 排查依赖冲突:执行./gradlew dependencies查看依赖树,移除重复或版本冲突的依赖。
  • 升级Gradle到React Native对应版本的稳定版(React Native 0.71.x推荐Gradle 7.4+),修改android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
    

额外注意事项

  • lottie-react-native的警告可暂时忽略,若要消除,在gradle.properties中添加android.disableAutomaticComponentCreation=true。
  • 确认NewsApp.keystore文件存在于android/app目录,且签名配置中的密码、别名完全正确。

内容的提问来源于stack exchange,提问作者Gattu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:02:09