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

React Native构建问题:如何让Gradlew忽略._filename文件?

React Native构建Android时忽略系统生成的._filename文件方案

我的React Native应用执行npx react-native run-android命令时,持续返回系统自动生成的._filename文件相关错误。已尝试用dot_clean .命令删除这类文件,但构建过程中会重新生成,错误依旧存在。需要让Gradlew在构建过程中忽略._filename文件。

错误堆栈信息

ERROR:/project/path/node_modules/@react-native-firebase/app/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar: D8: com.android.tools.r8.internal.sd: Invalid classfile header
com.android.tools.r8.internal.sd: Unexpected class file name: com/learnium/RNDeviceInfo/._BuildConfig.class
    at com.android.tools.r8.internal.ug.w(R8_4.0.48_320a4fe2564c68ad8fe4492fea65872bc8f51e21c4d46e3dbac43afcc38d90de:1180)
(...)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexBuilderDebug'.
> Unexpected class file name: com/learnium/RNDeviceInfo/._BuildConfig.class

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 15s

解决方案

1. 在Gradle配置中添加忽略规则

在项目android/build.gradle(或android/app/build.gradle)的android块中添加packagingOptions配置,让Gradle打包时跳过所有._开头的文件:

android {
    // 保留原有配置...
    packagingOptions {
        exclude '**/._*'
    }
}

2. 配置Git忽略这类文件

在项目根目录的.gitignore文件中添加以下规则,避免Git追踪这类文件,减少不必要的生成场景:

._*

3. 从系统层面禁止生成._文件(Mac系统)

在终端执行以下命令,全局禁用Mac系统在网络存储和USB存储中生成DS_Store及._开头的文件,从根源减少这类文件的产生:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true
defaults write com.apple.desktopservices DSDontWriteUSBStores true

执行后重启电脑生效。

验证步骤

添加上述配置后,先清理构建缓存再重新构建:

cd android && ./gradlew clean
cd .. && npx react-native run-android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:16