Nishanth S Babu
Nishanth S Babu

Reputation: 290

How to exclude ProGuard for external third party dependency in android

Am using a third party dependency. It works well in debug mode and also it works well if i generate signed apk with

 buildTypes {
    release {

        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

but crash when

 buildTypes {
    release {

        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

and my log cat is

09-05 18:56:39.124 4730-4730/? A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: fid == null
09-05 18:56:39.125 4730-4730/? A/art: art/runtime/java_vm_ext.cc:470]     in call to GetObjectField
art/runtime/java_vm_ext.cc:470]     from int com.opentok.android.Session.init(java.lang.String, android.content.Context, java.lang.String, java.lang.String, boolean)
art/runtime/java_vm_ext.cc:470] "main" prio=5 tid=1 Runnable
art/runtime/java_vm_ext.cc:470]   | group="main" sCount=0 dsCount=0 obj=0x75654000 self=0xabb84400
art/runtime/java_vm_ext.cc:470]   | sysTid=4730 nice=-10 cgrp=default sched=0/0 handle=0xae8e3534
art/runtime/java_vm_ext.cc:470]   | state=R schedstat=( 273272463 63970668 410 ) utm=20 stm=5 core=0 HZ=100
art/runtime/java_vm_ext.cc:470]   | stack=0xbe1e5000-0xbe1e7000 stackSize=8MB
art/runtime/java_vm_ext.cc:470]   | held mutexes= "mutator lock"(shared held)

Upvotes: 3

Views: 1607

Answers (2)

Renkuei
Renkuei

Reputation: 286

The easiest way to do it should be using R8, just add android.enableR8=true in your gradle.properties

Upvotes: 0

Aniruddh Parihar
Aniruddh Parihar

Reputation: 3104

Just put this line on ProGuard file

-keep public class android.support.v4.** { *;}

replace android.support.v4 with your external third party Package name

Upvotes: 1

Related Questions