I've recently started studying the build flavors of the Android application and the Proguard. So what I'm doing now is creating a release build of my application. For this, following are the changes I've made in buildTypes of my build.gradle file.
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.chitchatReleaseConfig
}
}
I've created a proguard-rules.pro file for the release build by referring the following link as mentioned at various places.
https://www.guardsquare.com/en/proguard/manual/examples
However, I'm still confused as to what types of files in my project apart from the general files I should actually include in the proguard-rules.pro. Because obviously due to the release build, at certain points in my app, I keep getting the FileNotFoundException and I'm not able to debug it.
So how do I decide what files in my project I should include in my proguard-rules.pro and how do I debug FileNotFoundException in my app in the release build?
Proguard comes with certain problems but it works great for minifying the apk size and code obfuscation. I will suggest that if you are using third party libraries in your app then use their proguard-rules as well in proguard-rules file.
To get error from signed apk use Firebase Crashlytic. Its easy to integrate(10 minute max) and it will show the complete stacktrace of exception on your firebase console .