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

如何在React Native中避免迁移至AndroidX并解决编译问题

嘿,我之前在维护老React Native项目的时候也碰到过一模一样的AndroidX相关编译问题,给你梳理两个问题的可行解决方案:

解决React Native Android编译因AndroidX变更导致的问题

一、避免迁移至AndroidX,保持原有编译方式

要继续沿用旧的Support Library而非切换到AndroidX,需要从配置和依赖两方面入手:

  • 在项目根目录的gradle.properties文件中添加以下配置,强制禁用AndroidX自动迁移和Jetifier工具:
    android.useAndroidX=false
    android.enableJetifier=false
    
  • 检查package.json中的第三方Native模块,避免使用已经完全迁移到AndroidX的版本。如果某个模块强制依赖AndroidX,建议降级到仍基于Support Library开发的旧版本。
  • 保持项目根目录build.gradle中的compileSdkVersion和targetSdkVersion在你之前使用的版本(比如28及以下,对应旧Support Library的最高兼容版本)。

二、解决android.support.annotation.Keep缺失的编译错误

你添加com.android.support:support-annotations依赖后没生效,大概率是依赖配置方式不对或者存在依赖冲突,试试这些方法:

  1. 替换过时的依赖关键字:新版Gradle已弃用compile,改用implementation或api,把依赖配置改成:
    dependencies {
        implementation 'com.android.support:support-annotations:27.1.1'
    }
    
  2. 强制指定依赖版本:如果是react-native-firebase模块的问题,你可以在项目的android/app/build.gradle中强制引入该依赖,避免版本冲突:
    dependencies {
        // 其他项目依赖...
        implementation ('com.android.support:support-annotations:27.1.1') {
            force = true
        }
    }
    
  3. 适配依赖版本:确认react-native-firebase的版本是否和你的React Native、Support Library兼容。如果不想迁移AndroidX,建议使用react-native-firebase的v5系列版本,这些版本仍基于旧Support Library开发。
  4. 清理缓存重新编译:修改依赖后,执行以下命令清除缓存,避免旧缓存干扰:
    ./gradlew clean
    cd .. && rm -rf node_modules && npm install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:23:05