【问题标题】:Play Console Not Showing Full Stack TracePlay 控制台未显示完整堆栈跟踪
【发布时间】:2018-01-12 18:23:30
【问题描述】:

我在 Google Play 控制台中找不到堆栈跟踪中实际处理我的应用程序代码的部分,具体来说。我得到的只是系统的东西,没有显示我的代码中导致错误的位置。

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:2884)
  at android.app.ActivityThread.-wrap14 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1565)
  at android.os.Handler.dispatchMessage (Handler.java:111)
  at android.os.Looper.loop (Looper.java:207)
  at android.app.ActivityThread.main (ActivityThread.java:5728)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:789)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:511)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:469)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:2879)

【问题讨论】:

    标签: java android google-play stack-trace


    【解决方案1】:

    Android 是完全开源的。如果您查看the source code 中的ActivityThread,您会看到当您的应用收到广播时会调用handleReceiver()

    如果您阅读the documentation for Broadcasts,您会看到广播来自 Android 操作系统,并进入清单中声明的​​类。在该页面上给出的示例中,您的清单看起来像这样:

    <receiver android:name=".MyBroadcastReceiver"  android:exported="true">
    

    那么你需要一个类似的类

    public class MyBroadcastReceiver extends BroadcastReceiver {
    

    我会从堆栈跟踪中猜测您在清单中声明了一个广播接收器,而您的 APK 中没有。要么你忘了写代码,要么把类名弄错了,要么像 proguard 这样的东西错误地把它去掉了(不太可能)。

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 2016-03-10
      • 2016-01-11
      • 1970-01-01
      • 2013-09-20
      • 2010-09-27
      相关资源
      最近更新 更多