修改BundleID后调用verifyPhoneNumber()出现Binder事务失败求助
修改BundleID并更新google-service.json后调用verifyPhoneNumber()出现跨平台异常
问题描述
此前代码运行正常,修改BundleID并重新下载google-service.json文件后,项目出现异常:
- iOS端:应用直接崩溃,无堆栈信息
- Android端:调用
verifyPhoneNumber()时出现!!! FAILED BINDER TRANSACTION !!!错误,堆栈信息如下:
E/JavaBinder(12658): !!! FAILED BINDER TRANSACTION !!! (parcel size = 624) W/GmsClient(12658): IGmsServiceBroker.getService failed W/GmsClient(12658): android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe W/GmsClient(12658): at android.os.BinderProxy.transactNative(Native Method) W/GmsClient(12658): at android.os.BinderProxy.transact(BinderProxy.java:584) W/GmsClient(12658): at com.google.android.gms.common.internal.zzac.getService(com.google.android.gms:play-services-basement@@18.1.0:8) W/GmsClient(12658): at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(com.google.android.gms:play-services-basement@@18.1.0:14) W/GmsClient(12658): at com.google.android.gms.common.api.internal.zabt.run(com.google.android.gms:play-services-base@@18.0.1:7) W/GmsClient(12658): at android.os.Handler.handleCallback(Handler.java:942) W/GmsClient(12658): at android.os.Handler.dispatchMessage(Handler.java:99) W/GmsClient(12658): at android.os.Looper.loopOnce(Looper.java:201) W/GmsClient(12658): at android.os.Looper.loop(Looper.java:288) W/GmsClient(12658): at android.os.HandlerThread.run(HandlerThread.java:67) E/JavaBinder(12658): !!! FAILED BINDER TRANSACTION !!! (parcel size = 624) W/GmsClient(12658): IGmsServiceBroker.getService failed W/GmsClient(12658): android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe W/GmsClient(12658): at android.os.BinderProxy.transactNative(Native Method) W/GmsClient(12658): at android.os.BinderProxy.transact(BinderProxy.java:584) W/GmsClient(12658): at com.google.android.gms.common.internal.zzac.getService(com.google.android.gms:play-services-basement@@18.1.0:8) W/GmsClient(12658): at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(com.google.android.gms:play-services-basement@@18.1.0:14) W/GmsClient(12658): at com.google.android.gms.common.api.internal.zabt.run(com.google.android.gms:play-services-base@@18.0.1:7) W/GmsClient(12658): at android.os.Handler.handleCallback(Handler.java:942) W/GmsClient(12658): at android.os.Handler.dispatchMessage(Handler.java:99) W/GmsClient(12658): at android.os.Looper.loopOnce(Looper.java:201) W/GmsClient(12658): at android.os.Looper.loop(Looper.java:288) W/GmsClient(12658): at android.os.HandlerThread.run(HandlerThread.java:67) E/JavaBinder(12658): !!! FAILED BINDER TRANSACTION !!! (parcel size = 624) W/GmsClient(12658): IGmsServiceBroker.getService failed W/GmsClient(12658): android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe W/GmsClient(12658): at android.os.BinderProxy.transactNative(Native Method) W/GmsClient(12658): at android.os.BinderProxy.transact(BinderProxy.java:584)
已尝试的无效操作:
flutter clean、flutter pub get、flutter pub cache repair- 删除build文件夹、.gradle文件夹、podfile.lock及pods文件夹后重新运行
解决方案
1. 核对google-service.json配置正确性
- 打开下载的google-service.json,确认
client[0].client_info.android_client_info.package_name与Android项目build.gradle中的applicationId完全一致(注意区分iOS的BundleID和Android的applicationId) - 确认Firebase控制台中已正确添加新的BundleID(iOS)和applicationId(Android),且下载的json属于对应项目
2. iOS端专项排查
- 检查Info.plist中的Bundle ID是否与Firebase控制台注册的完全匹配
- 在Xcode中执行
Command+Shift+K清理构建文件夹,然后重新执行pod install后运行 - 查看Xcode设备日志(路径:Window > Devices and Simulators > 选中目标设备 > View Device Logs),获取崩溃的具体原因(直接崩溃通常与签名、权限或Firebase配置不匹配有关)
3. Android端Binder错误处理
- 确保
app/build.gradle中apply plugin: 'com.google.gms.google-services'位于所有其他插件之后,避免配置加载顺序问题 - 检查Firebase Auth相关依赖版本与其他GMS服务版本是否兼容,统一版本号可减少冲突
- 优先使用真机测试,部分模拟器可能存在Google Play服务版本过低或缺失的情况
- 更新设备上的Google Play服务至最新版本,再测试功能
4. 重置Firebase配置
- 在Firebase控制台删除旧的BundleID/applicationId记录,重新添加后再次下载google-service.json替换项目中的文件
- 确认Flutter项目中
firebase_core已正确初始化,确保在调用verifyPhoneNumber()前完成初始化流程
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

