twilio / video-quickstart-android

Twilio Video Quickstart for Android
MIT License
212 stars 159 forks source link

Adding useProguard crashes the app on room connect #742

Closed Arokip closed 11 months ago

Arokip commented 1 year ago

Description

Adding useProguard true in app gradle crashes the app.

Steps to Reproduce

  1. Clone this project
  2. Add useProguard true to build.gradle file
  3. run the app in release mode
  4. app crashes

Code

In this project in QuickStartKotlin in file /quickstartKotlin/build.gradle there is this code:

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

If I really want to use proGuard I have to add useProguard true. So the code looks like this:

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

There are the proGuard rules in the project. Not sure if the problem is there.

-keep class tvi.webrtc.** { *; }
-keep class com.twilio.video.** { *; }
-keep class com.twilio.common.** { *; }
-keepattributes InnerClasses

Expected Behavior

App runs the same as without the line of code

Actual Behavior

App crashes when I try to connect to a room.

Reproduces how Often

100%

Logs

2023-05-16 09:27:40.536 15565-15565/com.twilio.video.quickstart.kotlin E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.twilio.video.quickstart.kotlin, PID: 15565
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.twilio.video.LocalAudioTrack.isReleased()' on a null object reference
        at com.twilio.video.ConnectOptions.checkAudioTracksReleased(:76)
        at com.twilio.video.ConnectOptions$Builder.build(:635)
        at com.twilio.video.ktx.ConnectOptionsKt.createConnectOptions(:19)
        at com.twilio.video.ktx.Video.connect(:85)
        at com.twilio.video.quickstart.kotlin.VideoActivity.connectToRoom(:771)
        at com.twilio.video.quickstart.kotlin.VideoActivity.connectClickListener$lambda-11(:991)
        at com.twilio.video.quickstart.kotlin.VideoActivity.i(Unknown Source:0)
        at com.twilio.video.quickstart.kotlin.k.onClick(Unknown Source:4)
        at android.support.v7.app.AlertController$g.handleMessage(:162)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:6878)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)

Versions

Quickstart Kotlin project, current version

Video Android SDK

7.6.1

Android API

I tried these API: 28, 31, 33

Android Device

Xiaomi Mi 12T, Redmi Note 10 Pro, Huawei P smart 2021, Xiaomi Mi Mix 2

afalls-twilio commented 1 year ago

@Arokip It looks like your audio track is null. Usually progaurd issues will result in mangled class names such as xxzy.asdfd.fadfad() etc..