Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android classnotfound崩溃不会出现在crashlytics中,而是出现在google play控制台中_Android_Google Play Console - Fatal编程技术网

Android classnotfound崩溃不会出现在crashlytics中,而是出现在google play控制台中

Android classnotfound崩溃不会出现在crashlytics中,而是出现在google play控制台中,android,google-play-console,Android,Google Play Console,我们正在尝试调试一些用户发生的崩溃,但无法准确地找出它是什么 在Google Play控制台中,我们可以看到: java.lang.RuntimeException: at android.app.ActivityThread.handleReceiver (ActivityThread.java:3331) at android.app.ActivityThread.-wrap20 (ActivityThread.java) at android.app.ActivityThr

我们正在尝试调试一些用户发生的崩溃,但无法准确地找出它是什么

在Google Play控制台中,我们可以看到:

java.lang.RuntimeException:  
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3331)
  at android.app.ActivityThread.-wrap20 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1734) 
  at android.os.Handler.dispatchMessage (Handler.java:102) 
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6688)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3326)
我们在项目中设置了Crashlytics,这是应用程序开始运行时加载的第一件事。我怀疑清单中可能缺少一个类,但我们查看了它(甚至为了确保安全而分解了APK),它们都在那里

我们怀疑可能是某个活动在初始化期间使用的类,但其中一些是第三方SDK,因此我们无法访问它们的源

有没有办法查看未找到的类名?这些错误不会出现在crashlytics上,我们无法在现有的任何设备/模拟器上重现

谢谢

编辑:部分分辨率

问题最终是我们正在使用的一个通知包,它需要在AndroidManifest.xml中包含特定于供应商的条目(我们的测试设备中没有这些条目)。在重新整合了我们几乎所有的第三方服务之后,我们最终看到崩溃报告消失了


我们无法实现我们的总体目标(从记录到Google Play开发者控制台的异常中获取异常文本,而不仅仅是异常堆栈跟踪),因此没有“好”的方法(据我们所知)来找出丢失了哪个类。非常令人失望的TBH。

因此并非所有用户都会遇到这种异常。显然,在运行时,对于这些用户,加载程序不知道这样的类。我的想法是,您正在使用一个lib(如lib.so,您自己的本机代码或第三方lib),其本机代码不支持特定的体系结构(如MIPS或Intel),因此此类设备会出现例外。只是需要调查一下。有针对不同体系结构的模拟器,因此您可能甚至不需要真正的硬件来测试这是否是根本原因

Crashlytics不会立即更新

一旦用户在崩溃后再次打开应用程序,该崩溃将在Crashlytics中报告

可能的情况

  • 崩溃后,您的崩溃设备可能无法打开应用程序
  • 可能在崩溃后卸载

  • 在构建中尝试此功能。gradle:

    android {
        defaultConfig {
            ...
            minSdkVersion 15 
            targetSdkVersion 26
            multiDexEnabled true
        }
        ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.1'
    }
    
    应用程序中类:

    public class MyApplication extends Application {
      @Override
      protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);
         MultiDex.install(this);
      }
    }
    

    您好,您可以指定哪个Android操作系统版本发生此崩溃吗?你是否在你的应用程序上运行了“lint”,这样它就可以判断是否有任何运行时api调用在以前的android版本上不可用?这几乎在所有android版本上都会发生。我们无法运行lint,因为APK是由Adobe Air生成的。可能当您添加Crashlytics时,它开始崩溃,因此Crashlytics是问题的根源。请参阅此so帖子: