5

I recently checked my google play crashes and found out that I have thousands of users with this crash, but nothing on 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)

Similar questions on stackoverflow: Question 1 Question 2

I have an ongoing email thread with Fabric support, but the only reason they think this is happening is because:

2018-12-09 14:39:09.899 [DEBUG] (Thread-6) com.crashlytics - Crashlytics found ProjectName, a module missing required artifacts: Root: E:\DevelopmentEnvironment\Projects\ProjectName(Exists), Manifest: E:\DevelopmentEnvironment\Projects\ProjectName\AndroidManifest.xml (Doesn't Exist), Res: E:\DevelopmentEnvironment\Projects\ProjectName\res (Doesn't Exist), Assets: E:\DevelopmentEnvironment\Projects\ProjectName\assets (Doesn't Exist), Data: C:\Users\hvkro_000.crashlytics\com.crashlytics.tools\ProjectName-bec53d32b3aec63f870c6dd19f7186ae46e1e3a1 (Doesn't Exist), NDK_OUT: null (Doesn't Exist), NDK_LIBS_OUT: null (Doesn't Exist) , (Maven? false), (Gradle false), (Using any IML? true), (Using any Default? true) (Manifest-Found-In: root? false src/main? false) (Res-Found-In: root? false src/main? false) (Assets-Found-In: root? false src/main? false)

We can't find your manifest. I believe this is the problem.

I haven't been able to replicate the issue on my end but as you can see below it is happening for a considerable amount of users. I have been at it for a long time and I can't figure what is causing this issue. Any help will be appreciated. enter image description here

Nick Adams
  • 96
  • 7

2 Answers2

0

After a minor change I was able to fix this issue. Previously I was initializing Fabric like this:

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

Then I updated it to look like this:

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);

This change fixed the issue for me. But the fabric team should have caught it before me as I already shared how I was initializing fabric with them. The previous code is how fabric was used to be initialized earlier in their docs. They should at the very least deprecate this way of initializing.

Nick Adams
  • 96
  • 7
0

For me it happened after I moved to app bundle.

I couldn't reproduce it but after analyzing Crashlytics log history I realized it started happening after I moved to app bundle. So I moved back to apk and now I am not getting these issue anymore.

Zeeshan
  • 11,851
  • 21
  • 73
  • 98
  • It's likely that some users installed your app from 3rd party APK mirror sites, and if you're using app bundle, the APK that's generated is probably something for xxhdpi devices, so if the user has a device with a lower DPI scale the xhdpi etc. resources won't be available in that APK. – Chee-Yi Jul 02 '19 at 12:12