运行时异常-Android中的ApplicationPackageManager.getPackageInfo
我正在使用android Google Analytics和Firebase跟踪错误 分析代码已从中使用 错误显示在下面的代码部分中运行时异常-Android中的ApplicationPackageManager.getPackageInfo,android,firebase,google-analytics,Android,Firebase,Google Analytics,我正在使用android Google Analytics和Firebase跟踪错误 分析代码已从中使用 错误显示在下面的代码部分中 public void trackException(Exception e) { if (e != null) { Tracker t = getGoogleAnalyticsTracker(); t.send(new HitBuilders.ExceptionBuilder()
public void trackException(Exception e) {
if (e != null) {
Tracker t = getGoogleAnalyticsTracker();
t.send(new HitBuilders.ExceptionBuilder()
.setDescription(
new StandardExceptionParser(this, null)
.getDescription(Thread.currentThread().getName(), e))
.setFatal(false)
.build()
);
}
}
firebase中的错误详细信息如下所示
RuntimeException-ApplicationPackageManager.getPackageInfo
Exception java.lang.RuntimeException: Package manager has died
android.app.ApplicationPackageManager.getPackageInfo (ApplicationPackageManager.java:160)
com.google.android.gms.analytics.StandardExceptionParser.setIncludedPackages ()
com.google.android.gms.analytics.StandardExceptionParser.<init> ()
com.Quest.MyApplication.trackException (MyApplication.java:85)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.SongPlayer (PlayService.java:552)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlaySong (PlayService.java:527)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlayRecievedSong (PlayService.java:499)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlayNormalNext (PlayService.java:894)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlayNext (PlayService.java:839)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.onCompletion (PlayService.java:972)
android.media.MediaPlayer$EventHandler.handleMessage (MediaPlayer.java:3351)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:135)
android.app.ActivityThread.main (ActivityThread.java:5910)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)
Exception java.lang.RuntimeException:包管理器已死亡
android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:160)
com.google.android.gms.analytics.StandardExceptionParser.setIncludedPackages()
com.google.android.gms.analytics.StandardExceptionParser。()
com.Quest.MyApplication.trackException(MyApplication.java:85)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.SongPlayer(PlayService.java:552)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlaySong(PlayService.java:527)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.playreceivedsong(PlayService.java:499)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.playmornext(PlayService.java:894)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.PlayNext(PlayService.java:839)
com.Quest.MediaPlayer.MusicPlayer.Mp3Player.Audioplayer.PlayService.onCompletion(PlayService.java:972)
MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3351)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5910)
java.lang.reflect.Method.invoke(Method.java)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
您正在为您的上下文保留一个静态引用,这很糟糕,您的问题就是证明
你的应用程序已经死掉了,你正在尝试使用不再存在的上下文做一些事情
快速解决方案是将静态引用更改为WeakReference,如果仍然有引用,只需调用trackException。最好的解决方案是不依赖上下文,始终接收
如果需要找到应用程序死亡的原因,则需要在尝试记录错误之前找到日志。请提供getGoogleAnalyticsTracker()的实现`MyApplication.getInstance().trackException(e);`就是这样