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

将React Native代码集成到现有Android项目时遇非法访问错误求助

解决React Native集成Android应用时的ConnectivityManagerCompat非法访问错误

这个错误本质上是依赖版本冲突导致的——你的Android项目中androidx.core库的版本和React Native内部依赖的版本不兼容,使得NetInfoModule无法访问ConnectivityManagerCompat的构造方法(该方法在某些androidx.core版本中被设为私有)。下面是具体的解决方案:

1. 强制统一androidx.core依赖版本

在项目根目录的build.gradle(项目级)中,添加依赖版本强制策略,确保所有模块使用相同版本的androidx.core:

allprojects {
    repositories {
        // ... 你的仓库配置
    }
    configurations.all {
        resolutionStrategy {
            force 'androidx.core:core-ktx:1.10.1' // 可根据项目需求选择1.8.0+的稳定版本
        }
    }
}

选择版本时,建议选一个既兼容现有Android应用,又匹配当前React Native版本的稳定版(可参考React Native官方文档或其maven依赖中的androidx.core版本)。

2. 更新React Native及相关网络模块

如果你的React Native版本较旧,可能存在已知兼容性问题:

  • 升级react-native到最新稳定版本(操作前做好代码备份,避免其他兼容问题)
  • 若使用了第三方网络信息模块(比如@react-native-community/netinfo),确保它也升级到与当前React Native版本兼容的最新版

3. 清理缓存并重建项目

执行以下操作彻底清理缓存,避免旧依赖残留:

# 清理Android项目缓存
./gradlew clean

# 清理React Native缓存
npx react-native start --reset-cache

之后重新构建并运行你的Android应用。

4. 检查混淆规则(若开启了混淆)

如果项目启用了ProGuard/R8混淆,确保在proguard-rules.pro中添加以下规则,避免ConnectivityManagerCompat被错误混淆:

-keep class androidx.core.net.ConnectivityManagerCompat { *; }
-keep class com.facebook.react.modules.netinfo.NetInfoModule { *; }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:54:10