签名打包混淆的问题

混淆带签名打包出错
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

java.io.IOException: Please correct the above warnings first.

这是混淆文件proguard-rules.pro

---------------------------------基本指令区----------------------------------

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-printmapping proguardMapping.txt
-optimizations !code/simplification/cast,!field/,!class/merging/
-keepattributes Annotation,InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable

----------------------------------------------------------------------------

---------------------------------默认保留区---------------------------------

-keep public class * extends android.app.Activity

-keep public class * extends android.app.Appliction

-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 * extends android.view.View

-keep public class com.android.vending.licensing.ILicensingService

-keep class android.support.* {;}

-keepclasseswithmembernames class * {

native <methods>;

}
-keepclassmembers class * extends android.app.Activity{

public void *(android.view.View);

}
-keepclassmembers enum * {

public static **[] values();
public static ** valueOf(java.lang.String);

}
-keep public class * extends android.view.View{

*** get*();
void set*(***);
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);

}
-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);

}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-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();

}
-keep class *.R$ {
*;
}
-keepclassmembers class * {

void *(**On*Event);

}

----------------------------------------------------------------------------

---------------------------------webview------------------------------------

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
-keepclassmembers class * extends android.webkit.webViewClient {

public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
public boolean *(android.webkit.WebView, java.lang.String);

}
-keepclassmembers class * extends android.webkit.webViewClient {

public void *(android.webkit.webView, jav.lang.String);

}

阅读 5.1k
2 个回答

将提示警告的内容进行保留,我之前打包混淆也遇到过这种问题的!上面的混淆好像没有看见你混淆第三方包!

新手上路,请多包涵

-dontwarn com.xxx.**
xxx表示忽略警告的包名,你这样试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题