Every thing works great before installing
minifyEnabled true
and
shrinkResources true
After setting these values, whenever I run the project, I get this error:
Information:Gradle tasks [:app:assembleProdRelease] Error:path may not be null or empty string. path='null' Information:BUILD FAILED Information:Total time: 23.606 secs Information:1 error Information:0 warnings Information:See complete output in console
What this error means: Error: the path may be empty or empty. path = 'null' Here is build.gradle:
signingConfigs { release { storeFile file('/home/rishabh/Documents/dekhoJks/release.jks') storePassword "XXXXXXX" keyAlias "XXXXXXXX" keyPassword "XXXXXXXXX" } } buildTypes { release { minifyEnabled true //proguardFiles fileTree(dir: "proguard", include: ["*.pro"]).asList().toArray() proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' shrinkResources true signingConfig signingConfigs.release } }
And I tried to put every damn thing that I can put in proguard.pro:
-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -allowaccessmodification -keepattributes *Annotation* -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable -repackageclasses '' -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -dontnote com.android.vending.licensing.ILicensingService # Explicitly preserve all serialization members. The Serializable interface # is only a marker interface, so it wouldn't save them. -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # Preserve all native method names and the names of their classes. -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } # Preserve static fields of inner classes of R classes that might be accessed # through introspection. -keepclassmembers class **.R$* { public static <fields>; } # Preserve the special static methods that are required in all enumeration classes. -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class * { public protected *; } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } ##---------------End: proguard configuration common for all Android apps ---------- #---------------Begin: proguard configuration for support library ---------- -keep class android.support.v4.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep class com.actionbarsherlock.** { *; } -keep interface com.actionbarsherlock.** { *; } # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** -dontwarn com.google.ads.** ##---------------End: proguard configuration for Gson ---------- ##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # For using GSON @Expose annotation -keepattributes *Annotation* # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.example.model.** { *; } ##---------------End: proguard configuration for Gson ---------- # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -keepclassmembers class android.support.design.internal.BottomNavigationMenuView { boolean mShiftingMode; } -dontwarn com.fasterxml.** -dontwarn okio.** -dontwarn retrofit2.** -dontwarn com.fasterxml.jackson.databind.** # Basic ProGuard rules for Firebase Android SDK 2.0.0+ -keep class com.firebase.** { *; } -keep class org.apache.** { *; } -keepnames class com.fasterxml.jackson.** { *; } -keepnames class javax.servlet.** { *; } -keepnames class org.ietf.jgss.** { *; } -dontwarn org.apache.** -dontwarn org.w3c.dom.** -dontwarn com.firebase.ui.** -keepattributes Signature -dontwarn com.googlecode.mp4parser.** -dontwarn org.mp4parser.aspectj.runtime.reflect.** -keep class * implements com.coremedia.iso.boxes.Box { *; } -dontwarn com.coremedia.iso.boxes.** -dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.** -dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.** -keep class com.facebook.** { *; }
But still can not start my application. Any help that I'm wrong in.
android proguard android-proguard
Rishabh chandel
source share