status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.85k stars 984 forks source link

Can't launch mobile app after realm upgrade: Unfortunately, Status has stopped (Android 6.0.1, Galaxy S6 and S7) #8366

Closed annadanchenko closed 5 years ago

annadanchenko commented 5 years ago

Description

Type: Bug

Summary: Can't launch app, see "Unfortunately, Status has stopped" popup instead. Installed Android nightly build from https://ci.status.im/job/status-react/job/nightly/1105/

Note that previous nightly https://ci.status.im/job/status-react/job/nightly/1104/ can be installed and launched fine. Assume that the issues is introduced by https://github.com/status-im/status-react/pull/8336

Expected behavior

app launched

Actual behavior

"Unfortunately, Status has stopped" popup

logcat contains

06-05 15:49:48.421  3059  3059 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-05 15:49:48.421  3059  3059 F DEBUG   : Build fingerprint: 'samsung/zerofltexx/zeroflte:6.0.1/MMB29K/G920FXXU5DQA8:user/release-keys'
06-05 15:49:48.421  3059  3059 F DEBUG   : Revision: '11'
06-05 15:49:48.421  3059  3059 F DEBUG   : ABI: 'arm'
06-05 15:49:48.421  3059  3059 F DEBUG   : pid: 8122, tid: 8172, name: mqt_js  >>> im.status.ethereum <<<
06-05 15:49:48.421  3059  3059 F DEBUG   : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x460eb084
06-05 15:49:48.421  3507  3507 I KnoxTimeoutHandler: SD activityfalse
06-05 15:49:48.421  3050  3050 D libEGL  : eglTerminate EGLDisplay = 0x7ffb963b98
06-05 15:49:48.421  3059  3059 F DEBUG   :     r0 00000000  r1 00000000  r2 f5110ee1  r3 460eb084
06-05 15:49:48.421  3059  3059 F DEBUG   :     r4 d82a2b88  r5 00000000  r6 d406f3ac  r7 d406f300
06-05 15:49:48.421  3059  3059 F DEBUG   :     r8 eec6fa1c  r9 eed16470  sl eec6fa14  fp f73f9ec0
06-05 15:49:48.421  3059  3059 F DEBUG   :     ip d82a2d14  sp d406f2c0  lr d7da8538  pc 460eb084  cpsr 600e0010
06-05 15:49:48.431  4435  4435 D Launcher: onTrimMemory. Level: 20
06-05 15:49:48.431  3059  3059 F DEBUG   : 
06-05 15:49:48.431  3059  3059 F DEBUG   : backtrace:
06-05 15:49:48.431  3059  3059 F DEBUG   :     #00 pc 134ea084  /dev/ashmem/dalvik-main space 1 (deleted) (offset 0x1000)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #01 pc 0021b534  /data/app/im.status.ethereum-1/lib/arm/librealmreact.so
06-05 15:49:48.431  3059  3059 F DEBUG   :     #02 pc 0002063d  /data/app/im.status.ethereum-1/lib/arm/libjscexecutor.so (_ZN8facebook3jsc10JSCRuntimeC1Ev+16)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #03 pc 0002264b  /data/app/im.status.ethereum-1/lib/arm/libjscexecutor.so (_ZN8facebook3jsc14makeJSCRuntimeEv+14)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #04 pc 00018c0f  /data/app/im.status.ethereum-1/lib/arm/libjscexecutor.so
06-05 15:49:48.431  3059  3059 F DEBUG   :     #05 pc 000a56f3  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so (_ZN8facebook5react16NativeToJsBridgeC1EPNS0_17JSExecutorFactoryENSt6__ndk110shared_ptrINS0_14ModuleRegistryEEENS5_INS0_18MessageQueueThreadEEENS5_INS0_16InstanceCallbackEEE+146)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #06 pc 000a0913  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so
06-05 15:49:48.431  3059  3059 F DEBUG   :     #07 pc 000867df  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so
06-05 15:49:48.431  3059  3059 F DEBUG   :     #08 pc 0008531b  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so
06-05 15:49:48.431  3059  3059 F DEBUG   :     #09 pc 000791af  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+10)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #10 pc 000791e9  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so (_ZN8facebook3jni6detail17WrapForVoidReturnIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EEvJSD_EE4callEOSD_+20)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #11 pc 0007915f  /data/app/im.status.ethereum-1/lib/arm/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+30)
06-05 15:49:48.431  3059  3059 F DEBUG   :     #12 pc 015ef9b7  /data/app/im.status.ethereum-1/oat/arm/base.odex (offset 0x13e4000)

Reproduction

Additional Information

Logs

full logcat: cantstart.txt

yenda commented 5 years ago

@jakubgs since you just had a stab at the ndk filter could you look at this? seems like https://github.com/facebook/react-native/issues/24261 could solve this

jakubgs commented 5 years ago

@yenda

Temporary Workaround: When I removed 64 bit ndk filters "arm64-v8a", "x86_64" from ndk abiFilters in defaultConfig block of buidl.gradle by provide only 32 bit support

How is that any help when we need 64 bit support to do a release starting from 1st of June?

yenda commented 5 years ago

apparently realm doesn't support 64 bits yet anyway https://github.com/realm/realm-js/issues/2282#issuecomment-498329160

jakubgs commented 5 years ago

According to this: https://github.com/facebook/react-native/issues/25060#issuecomment-497993541

Magical part of code saved my life. add this to app/build.gradle: ndk { abiFilters "armeabi-v7a", "x86" }

But that's nonsense because we need arm64-v8a to be compliant with the new Play Store requirements: https://developer.android.com/distribute/best-practices/develop/64-bit

For the ARM architecture, the 32-bit libraries are located in armeabi-v7a. The 64-bit equivalent is arm64-v8a.

and:

the presence of armeabi-v7a and arm64-v8a libraries, which means the app supports 64-bit architectures.

So we can't just drop it, or we will be unable to release to the Play Store.

annadanchenko commented 5 years ago

update on devices where issue can be reproduce and not:

Can reproduce issue

  1. Galaxy S6, Android 6.0.1
  2. Galaxy S7, Android 6
  3. Galaxy S7, Android 8.0.0
  4. Galaxy S8, Android 7

Can't reproduce issue:

  1. Galaxy Note 4, Android 6.0.1
  2. Nexus 6, Android 6
yenda commented 5 years ago

Confirms that it is 64 bits phones

yenda commented 5 years ago

@jakubgs we can drop it until realm supports it, so I'll be watching their issue, it shouldn't take long

jakubgs commented 5 years ago

Okay, we can do that, but just to be clear, we won't be able to do Android releases until we undo the temporary fix: #8367

krisc commented 5 years ago

This happens to my Samsung S6 Edge, Android 7 as well.

Which branch of the upstream repo can I rebase my own development branches with so I can continue development?

jakubgs commented 5 years ago

@krisc you can try #8367 and tell us if it helped.

yenda commented 5 years ago

@krisc please try https://github.com/status-im/status-react/pull/8368 first

the first build, the others don't matter it's just stupid yarn doing too much