Search code examples
androidsinch

Sinch 3.12.4: Missing files in SDK causes some devices to crash


Visible file /app/libs/sinch-android-rtc-3.12.4.aar

Missing folders/files

/app/libs/ sinch-android-rtc-3.12.4.jar sinch-android-rtc-3.12.4.jar.properties

/app/src/main/jniLibs/ armeabi-v7a armeabi

Can't find the missing libsinch-android-rtc.so in latest sdk...

Why was jniLibs removed?

It works fine on some devices but It's crashing on Samsung Galaxy devices and some others.

Backtrace - Google Play crash data

#08  pc 000000000019e940  /data/app/com.test-dhcuZ5by91y6- 
YSkvRjWjA==/lib/arm64/libsinch-android-rtc.so

#09  pc 000000000019e7c0  /data/app/com.test-dhcuZ5by91y6- 
YSkvRjWjA==/lib/arm64/libsinch-android-rtc.so

Below is the logcat (Android Studio)

04-13 09:22:20.765 27856-27856/? A/art: art/runtime/thread.cc:1336] No 
pending exception expected: java.lang.ClassNotFoundException: Didn't find 
class "com.sinch.android.rtc.internal.natives.HttpRequest" on path: 
DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip 
file "/data/app/com.test-1/base.apk"],nativeLibraryDirectories= 
[/data/app/com.test-1/lib/arm, /data/app/com.test- 
1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
04-13 09:22:20.765 27856-27856/? A/art: art/runtime/thread.cc:1336]   at 
void com.test.service.SinchService.a(java.lang.String) ((null):-1)
04-13 09:22:20.765 27856-27856/? A/art: art/runtime/thread.cc:1336]   at 
void com.test.service.SinchService.b(java.lang.String) ((null):-1)
04-13 09:22:20.765 27856-27856/? A/art: art/runtime/thread.cc:1336]   at 
void com.test.service.SinchService.onCreate() ((null):-1)
04-13 09:22:31.224 27856-27856/? A/libc: Fatal signal 6 (SIGABRT), code -6 
in tid 27856 (com.test)
04-13 09:22:31.334 202-202/? A/DEBUG: pid: 27856, tid: 27856, name: 
com.test>>> com.test<<<
04-13 09:22:31.399 202-202/? A/DEBUG: Abort message: 

Solution

  • The issue above only happened with the the release build (app-release.apk) files and not the debug build (app-debug.apk).

    Below is the fix:

    In build.gradle, make sure minifyEnabled is set to false and don't add

    dexOptions { jumboMode true }

    Do it like below:

    buildTypes {
        release {
            minifyEnabled false
    
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }