在设置之前,每件事情都很好
minifyEnabled true
和
shrinkResources true
设置这些值后,每当我运行项目时,我都会收到此错误:
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
这个错误意味着什么错误:路径可能不是null或空字符串.路径=“空”
这是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 } }
我试着把每一个该死的东西都放在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.** { *; }
但仍然无法运行我的应用程序.我出错的任何帮助.