开启Hermes后为什么我的React Native应用白屏了?

轩辕宝娥 阅读 41

我刚在android/app/build.gradle里把enableHermes设成true,结果打包安装后直接白屏,控制台也没报错。

之前用JSC跑得好好的,现在连启动页都过不去。试过clean项目、重装node_modules都不行,是不是哪里配置漏了?

cd android && ./gradlew clean
npx react-native run-android --variant=release
我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
司马瑞静
这个我熟,Hermes切换确实容易踩坑。首先确认下你有没有漏掉这几个关键点:

1. 确保RN版本够新,老版本可能不支持Hermes,建议至少0.60+

2. 在android/gradle.properties里加上这两行:
hermesEnabled=true
enableHermes=true


3. 检查proguard配置,在android/app/proguard-rules.pro里加上:
-keep class com.facebook.hermes.** { *; }
-keep class com.facebook.jni.** { *; }


4. 最后记得删除android/app/build目录再重试

如果还不行,看下adb logcat有没有报错,常见的是so文件加载失败。之前我也被这个坑过,折腾了半天发现是架构不匹配。可以试试只打arm64的包:
cd android && ./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8a

妈的RN生态就这样,每次升级都像开盲盒... 你先试试这几个方法,不行的话我们再看看具体log。
点赞
2026-03-09 15:12
百里佳妮
啊这个坑我踩过!Hermes开启后白屏最常见的原因是Proguard没配好。可以试试这样:

1. 先确认下你的android/app/build.gradle里Proguard配置有没有包含Hermes规则,加这两行:
release {
// 加上这个
def hermesEnabled = enableHermes.toBoolean()
if (hermesEnabled) {
consumerProguardFiles 'proguard-rules.pro', 'proguard-rules-hermes.pro'
}
}


2. 然后在android/app目录下创建proguard-rules-hermes.pro文件,内容放:
-keep class com.facebook.hermes.unicode.** { *; }
-keep class com.facebook.jni.** { *; }


3. 最后再clean一遍重新打包:
cd android && ./gradlew clean
npx react-native run-android --variant=release


要是还不行的话,可以临时关掉minifyEnabled看看是不是混淆的问题。Hermes这玩意性能是好,但配置起来确实比JSC麻烦点...
点赞 1
2026-03-05 08:37