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

React Native集成Twilio:Android13拨打电话因PendingIntent标记缺失崩溃求助

问题分析

崩溃原因是Android 13(API 31+)强制要求创建PendingIntent时必须指定FLAG_IMMUTABLE或FLAG_MUTABLE标记,而你使用的react-native-twilio-programmable-voice库中,CallNotificationManager.java的createHangupNotification方法(第154行)创建PendingIntent时未添加该标记,触发了IllegalArgumentException。

解决方案

方案1:升级库到修复版本

检查你使用的hoxfon/react-native-twilio-programmable-voice仓库的feat/twilio-android-sdk-5分支是否已提交该问题的修复代码。若有,直接拉取最新代码重新安装依赖:

npm install github:hoxfon/react-native-twilio-programmable-voice#feat/twilio-android-sdk-5 --force

之后清理缓存并重建项目:

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

方案2:手动修改库代码(临时修复)

如果库暂未修复,直接修改node_modules中的对应文件:

  1. 找到路径:node_modules/react-native-twilio-programmable-voice/android/src/main/java/com/hoxfon/react/RNTwilioVoice/CallNotificationManager.java
  2. 定位到createHangupNotification方法中创建PendingIntent的代码,原代码类似:
PendingIntent.getActivity(context, 0, hangupIntent, PendingIntent.FLAG_UPDATE_CURRENT);
  1. 修改为添加FLAG_IMMUTABLE(挂断通知无需可变PendingIntent,推荐使用该标记):
// 确保导入类
import android.app.PendingIntent;
// 修改后的代码
PendingIntent.getActivity(context, 0, hangupIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
  1. 若需兼容更低版本(你的minSdkVersion为21),可改用AndroidX兼容类:
import androidx.core.app.PendingIntentCompat;
// 替换创建逻辑
PendingIntent hangupPendingIntent = PendingIntentCompat.getActivity(
    context,
    0,
    hangupIntent,
    PendingIntent.FLAG_UPDATE_CURRENT,
    false // false对应IMMUTABLE,true对应MUTABLE
);
  1. 修改完成后重建项目:
cd android && ./gradlew clean
cd .. && npx react-native run-android
额外说明

你之前添加的androidx.work相关依赖与本次崩溃无关,可移除这些不必要的配置。

内容的提问来源于stack exchange,提问作者Md Javed Akhtar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:15:10