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

Rx2AndroidNetworking在Android 31+报错:PendingIntent需指定IMMUTABLE/MUTABLE标志

Android 31+ 使用Rx2AndroidNetworking报错的解决办法

问题描述

在Android 31及以上版本中使用Rx2AndroidNetworking调用接口时,抛出以下异常:

java.lang.IllegalArgumentException: com.gomini.gominipassenger: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.

用户代码示例

接口调用代码:

public static Observable<AppVersion> checkAppVersion() {
    return Rx2AndroidNetworking.post(Constant.Api.Url.BASE_URL + Constant.Api.Url.CHECK_APP_VERSION)
            .addBodyParameter(Constant.Api.CheckAppVersion.APP_VERSION, String.valueOf(BuildConfig.VERSION_CODE))
            .addBodyParameter(Constant.Api.CheckAppVersion.DEVICE_TYPE, Constant.DEVICE_TYPE)
            .setOkHttpClient(client)
            .build()
            .getObjectObservable(AppVersion.class)
            .compose(RxUtils.applyNetworkSchedulers());
}

依赖配置:

implementation 'com.amitshekhar.android:rx2-android-networking:1.0.2'

解决办法

  • 升级依赖版本:当前使用的1.0.2版本未适配Android 12+的PendingIntent强制规则,直接升级到兼容版本即可修复问题,推荐使用:

    implementation 'com.amitshekhar.android:rx2-android-networking:1.1.2'
    

    该版本已针对Android 12+调整了PendingIntent的创建逻辑,添加了FLAG_IMMUTABLE参数。

  • 临时替代方案(不推荐):若无法立即升级依赖,可尝试自定义OkHttpClient并拦截内部请求,手动修正PendingIntent的创建参数,但此方法需要修改库的内部逻辑,维护成本高,优先建议升级版本。

内容的提问来源于stack exchange,提问作者Hamdy Abd El Fattah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:22:23