Search code examples
androidreact-nativesamsung-mobile

React native app crashing at installation


I released an app in Playstore few months ago. The app was working well, but now in some samsung phones, is crashing in installation by Playstore or running with debug. I've notice that beginning when I upgrade gradle version, but in previus versions app doesnt compile. I try to find the problem, but i don't know why is happening. I tested it in the following devices:

  • Samsung A3 Android 8.0 (Crash)
  • Samsung J5 Android 6.0.1 (Crash)
  • LG K40 Android 8.0 (Crash)
  • Samsung A30S Android 9.0 (Works)
  • Motorola G30 Android 11 (Works)
  • Xiaomi Redmi 7 Android 10 (Works)
  • Xiaomi Poco X3 Android 11 (Works)

The logcat of Samsung A3 show this when i try to open the app

    01-05 10:52:28.821  3210  3312 I WindowManager: Destroying surface 
    Surface(name=cl.htgo.customer/cl.htgo.customer.MainActivity) called by 
    com.android.server.wm.WindowStateAnimator.destroySurface:2501 
    com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:985 
    com.android.server.wm.WindowState.destroyOrSaveSurfaceUnchecked:3683 
    com.android.server.wm.WindowState.destroySurface:3631 
    com.android.server.wm.AppWindowToken.destroySurfaces:722 
    com.android.server.wm.AppWindowToken.destroySurfaces:706 
    com.android.server.wm.WindowState.onExitAnimationDone:5346 
    com.android.server.wm.WindowStateAnimator.stepAnimationLocked:550

    01-05 10:52:28.821  2632  6578 I SurfaceFlinger: id=404 Removed 
    cl.htgo.customer/cl.htgo.customer.MainActivity#0 (5/8)

    01-05 10:52:28.822  2632  2666 I SurfaceFlinger: id=405 Removed 
    cl.htgo.customer/cl.htgo.customer.MainActivity#1 (4/7)

    01-05 10:52:28.826  2632  6578 I SurfaceFlinger: id=405 Removed 
    cl.htgo.customer/cl.htgo.customer.MainActivity#1 (-2/7)

    01-05 10:52:28.826  2632  2666 I SurfaceFlinger: id=404 Removed 
    cl.htgo.customer/cl.htgo.customer.MainActivity#0 (-2/7)

    01-05 10:52:28.835  6263  6399 D ForegroundUtils: could not check pending caller

    01-05 10:52:28.837  2632  2632 I Layer   : id=404 onRemoved 
    cl.htgo.customer/cl.htgo.customer.MainActivity#0

    01-05 10:52:28.837  2632  2632 I Layer   : id=405 onRemoved 
    cl.htgo.customer/cl.htgo.customer.MainActivity#1

    01-05 10:52:28.841 25928 25928 D ViewRootImpl@235c9e9[MainActivity]:dispatchDetachedFromWindow

    01-05 10:52:28.841 25928 25928 D InputEventReceiver: channel '7f2746 
    cl.htgo.customer/cl.htgo.customer.MainActivity (client)' ~ Disposing input event receiver.

    01-05 10:52:28.842 25928 25928 D InputEventReceiver: channel '7f2746 
    cl.htgo.customer/cl.htgo.customer.MainActivity (client)' ~NativeInputEventReceiver.

    01-05 10:52:28.850 25928 25928 E WindowManager:

    01-05 10:52:28.850 25928 25928 E WindowManager: android.view.WindowLeaked: Activity cl.htgo.customer.MainActivity has leaked window DecorView@e13197d[] that was originally added here

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.view.ViewRootImpl.
    <init>(ViewRootImpl.java:615)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:365)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at 
    android.view.WindowManagerImpl.addView(WindowManagerImpl.java:100)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.Dialog.show(Dialog.java:420)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at org.devio.rn.splashscreen.SplashScreen$1.run(SplashScreen.java:36)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.Activity.runOnUiThread(Activity.java:6281)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at org.devio.rn.splashscreen.SplashScreen.show(SplashScreen.java:27)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at org.devio.rn.splashscreen.SplashScreen.show(SplashScreen.java:49)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at org.devio.rn.splashscreen.SplashScreen.show(SplashScreen.java:56)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at cl.htgo.customer.MainActivity.onCreate(MainActivity.java:17)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.Activity.performCreate(Activity.java:7183)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.ActivityThread.-wrap11(Unknown Source:0)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.os.Handler.dispatchMessage(Handler.java:105)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.os.Looper.loop(Looper.java:164)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at android.app.ActivityThread.main(ActivityThread.java:6944)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at java.lang.reflect.Method.invoke(Native Method)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)

    01-05 10:52:28.850 25928 25928 E WindowManager:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

    01-05 10:52:28.851  3210  5967 D TaskSnapshotCache: removeRunningEntry taskId=31 RunningCache size=2

    01-05 10:52:28.852 25928 25928 D ViewRootImpl@3bb73d4[MainActivity]: dispatchDetachedFromWindow

    01-05 10:52:28.852 25928 25928 D InputEventReceiver: channel '80415a5 cl.htgo.customer/cl.htgo.customer.MainActivity (client)' ~ Disposing input event receiver.

    01-05 10:52:28.853 25928 25928 D InputEventReceiver: channel '80415a5 cl.htgo.customer/cl.htgo.customer.MainActivity (client)' ~NativeInputEventReceiver.

    01-05 10:52:28.856  3210  3222 W WindowManager: Failed looking up window callers=com.android.server.wm.WindowManagerService.windowForClientLocked:6686 com.android.server.wm.WindowManagerService.removeWindow:2016 com.android.server.wm.Session.remove:237

App specifications:

  • React native Version: 0.59.10

My gradle.build

   buildscript {
   ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 17
    compileSdkVersion = 29

    targetSdkVersion = 30
    supportLibVersion = "28.0.0"
    googlePlayServicesVersion="15.0.1"
    androidMapsUtilsVersion = "0.5+"
    firebaseVersion="17.6.0"
   }
   repositories {
      google()
    jcenter()
    maven {
        url 'https://maven.fabric.io/public'
      }
   }
   dependencies {
      classpath 'com.android.tools.build:gradle:3.5.0'
      classpath 'com.google.gms:google-services:4.2.0'
      classpath 'io.fabric.tools:gradle:1.28.1'
      // NOTE: Do not place your application dependencies here; they belong
      // in the individual module build.gradle files
     }
   }

    allprojects {
     repositories {
         google()
         jcenter()
         mavenLocal()
         maven {
             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
             url "$rootDir/../node_modules/react-native/android"
         }
     }
  }

Solution

  • I can solve this error. I add this lines to my android/build.gradle

    maven {
           // Local Maven repo containing AARs with JSC library built for Android
           url "$rootDir/../node_modules/jsc-android/dist"
           }
    

    Also delete maveCentral() and google(). All of this in repositories of allprojects.

    If have the same problem, check that you have this

    packagingOptions {
       pickFirst '**/armeabi-v7a/libc++_shared.so'
       pickFirst '**/x86/libc++_shared.so'
       pickFirst '**/x86_64/libc++_shared.so'
       pickFirst '**/arm64-v8a/libc++_shared.so'
       pickFirst '**/libjsc.so'
    }
    

    in your android/app/build.gradle