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

退出主Activity崩溃:尝试移除未添加的OnFrameMetricsAvailableListener

问题分析与解决方案

问题背景

你遇到的情况很明确:

  • 进入其他Activity后退出主Activity时,应用必然崩溃;但直接启动主界面后立即退出则完全正常
  • 崩溃触发在主Activity的super.onStop();代码行,错误提示为:attempt to remove OnFrameMetricsAvailableListener that was never added
  • 最后一次修改仅改动了根目录build.gradle的classpath,改为com.android.tools.build:gradle:3.1.2和com.google.gms:google-services:3.3.1,项目中完全没有使用过FrameMetrics相关对象

相关代码片段

@Override 
public void onStop() { 
    super.onStop(); 
    StateManager mgr = new StateManager(this); 
    if (mMap != null) { 
        mgr.saveMapState(mMap); 
    } 
}

完整崩溃日志

Process: com.example.nabeth.youandi, PID: 24034 
java.lang.RuntimeException: Unable to stop activity {com.example.nabeth.youandi/com.example.nabeth.youandi.MapsActivity}: java.lang.IllegalArgumentException: attempt to remove OnFrameMetricsAvailableListener that was never added 
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4209) 
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4265) 
at android.app.ActivityThread.-wrap6(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1565) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6247) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 
at android.os.ZygoteInit.main(ZygoteInit.java:762) 
Caused by: java.lang.IllegalArgumentException: attempt to remove OnFrameMetricsAvailableListener that was never added** 
at android.view.View.removeFrameMetricsListener(View.java:5573) 
at android.view.Window.removeOnFrameMetricsAvailableListener(Window.java:865) 
at android.support.v4.app.FrameMetricsAggregator$FrameMetricsApi24Impl.remove(FrameMetricsAggregator.java:432) 
at android.support.v4.app.FrameMetricsAggregator.remove(FrameMetricsAggregator.java:245) 
at com.google.android.gms.internal.firebase-perf.zzd.onActivityStopped(Unknown Source) 
at android.app.Application.dispatchActivityStopped(Application.java:234) 
at android.app.Activity.onStop(Activity.java:1815) 
at android.support.v4.app.FragmentActivity.onStop(FragmentActivity.java:613) 
at com.example.nabeth.youandi.MapsActivity.onStop(MapsActivity.java:2684) 
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1290) 
at android.app.Activity.performStop(Activity.java:6932) 
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4204) 
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4265) 
at android.app.ActivityThread.-wrap6(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1565) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6247) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 
at android.os.ZygoteInit.main(ZygoteInit.java:762)

问题根源

从崩溃栈可以定位到,问题出在Firebase Performance的内部逻辑中:com.google.android.gms.internal.firebase-perf.zzd.onActivityStopped。它尝试移除一个从未被添加的FrameMetrics监听器,这是Firebase Performance与你当前使用的Gradle插件版本、Support库版本不兼容导致的已知bug。

可行的解决办法

  1. 匹配Google Services与Firebase Performance版本
    确保google-services和firebase-perf的版本兼容。如果使用google-services:3.3.1,可以尝试将Firebase Performance依赖升级到16.2.0或更高版本(在app级build.gradle中):

    implementation 'com.google.firebase:firebase-perf:16.2.0'
    
  2. 降级Google Services版本
    把google-services改回之前能正常运行的版本,比如:

    classpath 'com.google.gms:google-services:3.2.1'
    
  3. 暂时禁用Firebase Performance
    如果不需要性能监控功能,可以直接在AndroidManifest.xml中关闭它:

    <meta-data android:name="firebase_performance_collection_enabled" android:value="false" />
    

    或者移除app级build.gradle中的Firebase Performance依赖。

  4. 升级Gradle插件到更稳定版本
    尝试将Gradle插件升级到3.2.1或更高稳定版,同时搭配对应的google-services版本(比如google-services:4.2.0),兼容性会更好:

    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'com.google.gms:google-services:4.2.0'
    

最后记得执行Clean Project再Rebuild Project,清理缓存避免残留问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:12:34