我的androids应用程序在某些设备上存在基于Activitynotfoundexception的崩溃。我怎样才能再生它?

我的androids应用程序在某些设备上存在基于Activitynotfoundexception的崩溃。我怎样才能再生它?,android,crash,proguard,activitynotfoundexception,Android,Crash,Proguard,Activitynotfoundexception,我在Google Play上发布了一个Android应用程序。它工作正常,但一些用户抱怨应用程序在打开时崩溃。在游戏控制台上有%2,5的崩溃率,并且所有这些崩溃率都是活动未发现异常。但我或我的几个安卓用户朋友并没有在真正的设备上遇到任何崩溃。我还在API21到30的几个模拟器上测试了它(因为崩溃报告中的Android版本有所不同),但仍然没有问题 我启用了proguard,这可能会导致此异常,但我认为如果proguard是导致所有用户都会遇到相同问题的原因,而不是%2,5个用户 我的应用程序以一

我在Google Play上发布了一个Android应用程序。它工作正常,但一些用户抱怨应用程序在打开时崩溃。在游戏控制台上有%2,5的崩溃率,并且所有这些崩溃率都是活动未发现异常。但我或我的几个安卓用户朋友并没有在真正的设备上遇到任何崩溃。我还在API21到30的几个模拟器上测试了它(因为崩溃报告中的Android版本有所不同),但仍然没有问题

我启用了proguard,这可能会导致此异常,但我认为如果proguard是导致所有用户都会遇到相同问题的原因,而不是%2,5个用户

我的应用程序以一个闪屏活动开始,它只显示一个图像,延迟1秒后调用主活动,从技术上讲,它是一个登录页面。如果用户单击“通过web登录”按钮,他们将被引导到webview活动。在80%的崩溃报告中,它说它找不到webview活动,其余的都没有找到主(登录)活动。所有活动都在清单文件中声明

事故报告示例:

android.content.ActivityNotFoundException: 
  at android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:2069)
  at android.app.Instrumentation.execStartActivity (Instrumentation.java:1717)
  at android.app.Activity.startActivityForResult (Activity.java:5250)
  at android.support.v4.app.f.startActivityForResult (BaseFragmentActivityApi16.java:3)
  at android.app.Activity.startActivityForResult (Activity.java:5208)
  at android.support.v4.app.i.startActivityForResult (FragmentActivity.java:4)
  at android.app.Activity.startActivity (Activity.java:5579)
  at android.app.Activity.startActivity (Activity.java:5547)

  **at com.myPackageName.myAppName.MainActivity.a (MainActivity.java:33)
  at com.myPackageName.myAppName.MainActivity$c.onResponse (MainActivity.java:9)**

  at okhttp3.RealCall$AsyncCall.execute (RealCall.java:5)
  at okhttp3.internal.NamedRunnable.run (NamedRunnable.java:3)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:919)
关于我应该在哪里挖掘有什么建议吗?我如何重新生成此崩溃?
谢谢。

问题可能是您泄漏了对您的活动的引用,之后由于各种原因,该活动被终止并重新创建。然后使用对您的活动的旧引用,它会导致崩溃。这适合您的情况,因为您的应用程序可能在某些内存使用情况下正常工作,而在其他情况下会意外崩溃。 在堆栈跟踪中,我看到您有一个内部类MainActivity$c,它(如果不是静态的)具有对活动类的隐式引用。因此,如果泄漏对MainActivity$c的引用,那么也会泄漏对MainActivity的引用。
检查您的代码是否存在此类泄漏

问题可能是您泄漏了对活动的引用,随后由于各种原因,活动被终止并重新创建。然后使用对您的活动的旧引用,它会导致崩溃。这适合您的情况,因为您的应用程序可能在某些内存使用情况下正常工作,而在其他情况下会意外崩溃。 在堆栈跟踪中,我看到您有一个内部类MainActivity$c,它(如果不是静态的)具有对活动类的隐式引用。因此,如果泄漏对MainActivity$c的引用,那么也会泄漏对MainActivity的引用。 检查您的代码是否存在此类泄漏

谢谢。当我打开“探查器”窗口查看内存时,我的应用程序开始在模拟器上崩溃。(当它关闭时,没有崩溃)控制台上的错误是关于找不到“okio”,这是我使用的okhttp3库的依赖项。我添加了它的proguard规则,现在没有崩溃。我将在市场发布和用户反馈后更新此信息。再次谢谢你,谢谢。当我打开“探查器”窗口查看内存时,我的应用程序开始在模拟器上崩溃。(当它关闭时,没有崩溃)控制台上的错误是关于找不到“okio”,这是我使用的okhttp3库的依赖项。我添加了它的proguard规则,现在没有崩溃。我将在市场发布和用户反馈后更新此信息。再次感谢你。