1

Not able to generate signed APk after set minifyEnabled true. when set minifyEnabled enabled false.i have no problem.is it mandatory to set minifyEnabled true? without what's the problem?

my ProGuard rules here..

-dontwarn com.squareup.picasso.**
 -dontwarn com.squareup.okhttp.internal.**
 -dontwarn org.apache.commons.logging.**
 -dontwarn okhttp3.internal.platform.*
 -dontwarn java.lang.invoke.*
 -dontwarn com.bumptech.glide.**
 -dontwarn org.apache.http.**
 -dontwarn android.net.http.AndroidHttpClient
 -dontwarn com.google.android.gms.**
 -dontwarn com.android.volley.toolbox.**
 -dontwarn com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool
 -dontwarn com.bumptech.glide.load.resource.bitmap.Downsampler
 -dontwarn com.bumptech.glide.load.resource.bitmap.HardwareConfigState
 -dontwarn io.card.**

i got 7 warnings

com.zhihu.matisse.internal.model.SelectedItemCollection: can't find referenced class com.zhihu.matisse.R$plurals    
ss.com.bannerslider.adapters.SliderRecylcerViewAdapter: can't find referenced method 'void onBindImageSlideView(int,ss.com.bannerslider.viewholder.ImageSlideViewHolder)' in program class ss.com.bannerslider.adapters.SliderAdapter   
ss.com.bannerslider.adapters.SliderRecylcerViewAdapter: can't find referenced field 'ss.com.bannerslider.SlideType CUSTOM' in program class ss.com.bannerslider.SlideType   
ss.com.bannerslider.adapters.SliderRecylcerViewAdapter$2: can't find referenced field 'ss.com.bannerslider.SlideType CUSTOM' in program class ss.com.bannerslider.SlideType 
there were 2 unresolved references to classes or interfaces.    
there were 3 unresolved references to program class members.    
Exception while processing task java.io.IOException: Please correct the above warnings first.   

my gradle files

  implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.google.code.gson:gson:2.8.1'
    implementation 'com.mindorks:placeholderview:0.7.2'
    implementation 'de.hdodenhof:circleimageview:2.2.0'
    implementation 'com.github.rakshakhegde:stepper-indicator:2.0.0-alpha'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.basgeekball:awesome-validation:1.3'
    implementation 'com.github.f0ris.sweetalert:library:1.5.3'
    implementation 'com.mcxiaoke.volley:library-aar:1.0.0'
    implementation 'com.daprlabs.aaron:cardstack:0.3.1-beta0'
    implementation 'com.customtoast:CustomToastLib:1.0.0'
    implementation 'com.ss.bannerslider:bannerslider:2.0.0'
    implementation 'com.github.bumptech.glide:glide:4.7.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
    implementation 'net.steamcrafted:materialiconlib:1.1.5'
    implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
    implementation 'co.lujun:androidtagview:1.1.4'
    implementation 'jp.wasabeef:glide-transformations:3.3.0'

    implementation 'org.apache.commons:commons-io:1.3.2'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-storage:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.2'

    implementation 'com.google.firebase:firebase-messaging:17.1.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.github.armcha:SpaceNavigationView:1.6.0'
    implementation 'com.borax12.materialdaterangepicker:library:1.9'
    implementation 'com.appyvet:materialrangebar:1.4.3'
    implementation 'com.amitshekhar.android:android-networking:1.0.2'

    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-places:15.0.1'
    implementation 'com.zhihu.android:matisse:0.5.0-beta3'
    implementation 'com.intuit.sdp:sdp-android:1.0.5'
    implementation 'com.vanniktech:emoji-one:0.5.1'

please help me .. the help will be appreciated...

shizhen
  • 12,251
  • 9
  • 52
  • 88
  • I am getting the above exception when I am adding "minifyEnabled true" in build.gradle app level, when I set "minifyEnabled false" it is working fine.but when I set to "minifyEnabled true" not working both in debug and release modes, giving above exception.Here's the link https://stackoverflow.com/questions/51720018/obfuscation-minifyenabled-true-not-working-in-debug-and-release – Naveen Aug 08 '18 at 11:39

1 Answers1

0

For release version of APK, it is highly recommended to set minifyEnabled be true, this is not only to minimise the final size of your apk, but also help obfuscate your sensitive packages/classes into some messy form of code so that it won't be reverse engineered easily.

According to your error messages below:

com.zhihu.matisse.internal.model.SelectedItemCollection: can't find referenced class com.zhihu.matisse.R$plurals

Means you miss the R package references which usually is the resource class from the android aar library, i.e. the zhihu, check if you are including this lib properly.

Workaround for this problem is as below to find your own strings.xml and put below declaration to cheat proguard.

<plurals name="error_over_count">
        <item quantity="one">You can only select one media file</item>
        <item quantity="many">You can only select up to %1$d media files</item>
</plurals>

ss.com.bannerslider.adapters.SliderRecylcerViewAdapter: can't find referenced method 'void onBindImageSlideView(int,ss.com.bannerslider.viewholder.ImageSlideViewHolder)' in program class ss.com.bannerslider.adapters.SliderAdapter
ss.com.bannerslider.adapters.SliderRecylcerViewAdapter: can't find referenced field 'ss.com.bannerslider.SlideType CUSTOM' in program class ss.com.bannerslider.SlideType
ss.com.bannerslider.adapters.SliderRecylcerViewAdapter$2: can't find referenced field 'ss.com.bannerslider.SlideType CUSTOM' in program class ss.com.bannerslider.SlideType there were 2 unresolved references to classes or interfaces. there were 3 unresolved references to program class members. Exception while processing task java.io.IOException: Please correct the above warnings first.

Means you miss the onBindImageSlideView package references which usually is from other libraries, check if you are including that lib properly.

shizhen
  • 12,251
  • 9
  • 52
  • 88
  • -dontwarn com.zhihu.matisse.** ... i put this line now no problem.. but application unfortunately error – Irshad Madappattu Aug 08 '18 at 07:26
  • 2
    You should not simply put `-dontwarn com.zhihu.matisse.**` just to avoid seeing some warnings, you have to face those warnings and fix them properly because sometimes those warnings are critical and cannot be ignored. – shizhen Aug 08 '18 at 07:30
  • 1
    I just added a workaround for the `zhihu` warnings, try to see if it works. – shizhen Aug 08 '18 at 07:42
  • I am getting the above exception when I am adding "minifyEnabled true" in build.gradle app level, when I set "minifyEnabled false" it is working fine.but when I set to "minifyEnabled true" not working both in debug and release modes, giving above exception.Here's the link https://stackoverflow.com/questions/51720018/obfuscation-minifyenabled-true-not-working-in-debug-and-release – Naveen Aug 08 '18 at 11:40