应用启动时,Crashlytics崩溃并出现Resources $ NotFoundException

时间:2018-12-14 06:01:46

标签: android firebase crashlytics google-fabric

我最近检查了我的google play崩溃,发现我有成千上万的用户发生了此崩溃,但是在crashlytics上却一无所有:

java.lang.RuntimeException: 
  at android.app.ActivityThread.installProvider (ActivityThread.java:7110)
  at android.app.ActivityThread.installContentProviders (ActivityThread.java:6594)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6498)
  at android.app.ActivityThread.-wrap2 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1963)
  at android.os.Handler.dispatchMessage (Handler.java:108)
  at android.os.Looper.loop (Looper.java:166)
  at android.app.ActivityThread.main (ActivityThread.java:7425)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
Caused by: android.content.res.Resources$NotFoundException: 
  at android.content.res.ResourcesImpl.getResourcePackageName (ResourcesImpl.java:325)
  at android.content.res.Resources.getResourcePackageName (Resources.java:2099)
  at io.fabric.sdk.android.services.common.CommonUtils.getResourcePackageName (CommonUtils.java:768)
  at io.fabric.sdk.android.services.common.CommonUtils.getResourcesIdentifier (CommonUtils.java:518)
  at io.fabric.sdk.android.services.common.CommonUtils.getBooleanResourceValue (CommonUtils.java:499)
  at io.fabric.sdk.android.services.common.FirebaseInfo.isFirebaseCrashlyticsEnabled (FirebaseInfo.java:56)
  at com.crashlytics.android.CrashlyticsInitProvider.shouldInitializeFabric (CrashlyticsInitProvider.java:85)
  at com.crashlytics.android.CrashlyticsInitProvider.onCreate (CrashlyticsInitProvider.java:25)
  at android.content.ContentProvider.attachInfo (ContentProvider.java:1919)
  at android.content.ContentProvider.attachInfo (ContentProvider.java:1894)
  at android.app.ActivityThread.installProvider (ActivityThread.java:7107)
  at android.app.ActivityThread.installContentProviders (ActivityThread.java:6594)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6498)
  at android.app.ActivityThread.-wrap2 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1963)
  at android.os.Handler.dispatchMessage (Handler.java:108)
  at android.os.Looper.loop (Looper.java:166)
  at android.app.ActivityThread.main (ActivityThread.java:7425)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)

关于stackoverflow的类似问题: Question 1 Question 2

我有一个正在进行的支持Fabric的电子邮件线程,但是他们认为发生这种情况的唯一原因是:

  

2018-12-09 14:39:09.899 [DEBUG](Thread-6)com.crashlytics-Crashlytics找到ProjectName,缺少所需工件的模块:根目录:E:\ DevelopmentEnvironment \ Projects \ ProjectName(Exists),清单:E:\ DevelopmentEnvironment \ Projects \ ProjectName \ AndroidManifest.xml(不存在),Res:E:\ DevelopmentEnvironment \ Projects \ ProjectName \ res(不存在),资产:E:\ DevelopmentEnvironment \ Projects \ ProjectName \资产(不存在),数据:C:\ Users \ hvkro_000.crashlytics \ com.crashlytics.tools \ ProjectName-bec53d32b3aec63f870c6dd19f7186ae46e1e3a1(不存在),NDK_OUT:空(不存在,NDK(不存在) 't Exist),(Maven?false),(Gradle false),(使用任何IML?true),(使用任何Default?true)(Manifest-Found-In:root?false src / main?false)(Res- Found-In:root?false src / main?false)(资产-Found-In:root?false src / main?false)

     

我们找不到您的清单。我相信这是问题所在。

我至今无法复制该问题,但是正如您在下面看到的那样,大量用户正在发生该问题。 我已经处理了很长时间,我无法弄清楚是什么导致了此问题。 任何帮助将不胜感激。 enter image description here

2 个答案:

答案 0 :(得分:0)

稍作更改后,我得以解决此问题。 以前我是这样初始化Fabric的:

Fabric.with(this, new Crashlytics.Builder().core(crashlyticsCore).build());

然后我将其更新为如下形式:

final Crashlytics crashlytics = new Crashlytics.Builder().core(crashlyticsCore).build();
    final Fabric fabric = new Fabric.Builder(this)
            .kits(crashlytics)
            .debuggable(BuildConfig.DEBUG)
            .build();
    Fabric.with(fabric);

此更改为我解决了此问题。 但是面料团队应该早就意识到了这一点,因为我已经与他们分享了如何初始化面料。之前的代码是如何在其文档的较早版本中初始化结构。他们至少应该不赞成这种初始化方式。

答案 1 :(得分:0)

  

对我来说,发生在我转移到应用程序捆绑包之后。

我无法重现它,但在分析了Crashlytics日志历史记录后,我意识到在移至应用程序捆绑包后它开始发生。所以我回到了apk,现在我不再遇到这些问题了。