Android兼容库support library/androidx的兼容问题



  • Android由于版本碎片多,官方推出了兼容库来保证跨版本ui的兼容性。老版本称为support library,由多个包组成(support.v4, support.v7等等),新版本统一为androidx。新老版本间互相不兼容,对于app来说,要么所有代码使用老兼容库,要么所有代码使用新兼容库,不可混用。

    RN在0.60版本时转向了新库androidx,由此引发大批第三方库的不兼容问题,总结其情况如下

    1. RN <= 0.59(老版support library) + 使用support library的第三方: ✅
    2. RN <= 0.59(老版support library) + 使用androidx的第三方:❌
    3. RN >= 0.60(新版androidx) + 使用support library的第三方(提供源码):✅(run-android编译时会自动调用jetifier将support library源码转换为androidx源码)
    4. RN >= 0.60(新版androidx) + 使用support library的第三方(仅提供预编译二进制,不提供源码):❌
    5. RN >= 0.60(新版androidx) + 使用androidx的第三方:✅

    对于上述❌的组合,解决方案只能是通过升级、降级、修改源码、替换其他库等方式来使两者使用相同的兼容库。


Log in to reply