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

Expo独立APK构建成功却无法启动,Android测试遇java.io.EOFException错误

解决React Native Android生产环境启动EOFException及Gradle下载警告问题

我帮你梳理下这个问题的解决方案——你遇到的java.io.EOFException加上Gradle构建时的Unable to get progress logger警告,大概率是依赖下载不完整或者缓存损坏导致的,虽然构建表面成功,但运行时因为缺失或损坏的资源触发了异常。试试下面这些步骤:

1. 全链路清理缓存并重建依赖

这类问题最常见的原因就是缓存的依赖文件损坏,先彻底清理所有相关缓存:

# 重置React Native打包缓存
npx react-native start --reset-cache

# 进入Android目录清理构建缓存
cd android && ./gradlew clean

# 删除项目本地依赖和锁文件
rm -rf node_modules package-lock.json yarn.lock

# 重新安装项目依赖
npm install # 如果用yarn就执行 yarn install

# 重新构建Android版本(先测Debug,没问题再测Release)
./gradlew assembleDebug

2. 检查Gradle仓库源配置

如果是网络环境导致依赖下载不完整,可以调整Android的Gradle仓库源,确保能稳定下载React Native相关依赖。修改android/build.gradle文件:

buildscript {
    repositories {
        google()
        mavenCentral()
        // 可选:添加国内镜像加速(如果网络访问mavenCentral有问题)
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "$rootDir/../node_modules/react-native/android" }
        maven { url "$rootDir/../node_modules/jsc-android/dist" }
        // 同步添加对应镜像
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}

3. 手动删除Gradle缓存的特定依赖

如果上面的步骤没解决,可能是Gradle本地缓存的DoubleConversion、Boost等依赖文件损坏,手动删除它们让Gradle重新下载:

# 删除React Native相关缓存
rm -rf ~/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/

# 删除DoubleConversion缓存
rm -rf ~/.gradle/caches/modules-2/files-2.1/com.facebook.doubleconversion/doubleconversion/

# 删除Boost缓存
rm -rf ~/.gradle/caches/modules-2/files-2.1/com.facebook.boost/boost/

执行完后回到项目重新运行构建命令。

4. 排查EOFException的具体触发场景

如果警告消失但仍有java.io.EOFException,需要定位具体的触发点:

  • 先运行详细日志命令获取更多信息:
    npx react-native run-android --mode release --verbose
    
  • 重点排查这几个方向:
    • 生产环境的签名配置是否正确(检查android/app/build.gradle里的signingConfigs)
    • 打包时是否有资源文件(比如图片、字体)缺失或损坏
    • Release混淆规则是否有误,确保React Native核心类没有被错误混淆(可以参考官方混淆配置)

如果还是解决不了,可以把verbose日志里的EOFException相关堆栈信息贴出来,能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:35:19