2017-04-25 3 views
1

Ich stehe mit diesem seltsamen Problem, wo meine App abstürzt, sobald es beim Generieren von signierten Apk mit Verschleierung (Progaurd) gestartet wird. Mein progaurd sieht aus wie folgt:App stürzt beim Generieren Signed apk mit Verschleierung (NoSuchMethodError)

-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.view.View { 
public <init>(android.content.Context); 
public <init>(android.content.Context, android.util.AttributeSet); 
public <init>(android.content.Context, android.util.AttributeSet, int); 
public void set*(...); 
} 

-keepclasseswithmembers class * { 
public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembers class * { 
public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers class * extends android.content.Context { 
public void *(android.view.View); 
public void *(android.view.MenuItem); 
} 

-keepclassmembers class * implements android.os.Parcelable { 
static ** CREATOR; 
} 

-keepclassmembers class **.R$* { 
public static <fields>; 
} 


-keepattributes Exceptions,InnerClasses,Signature 

    -keep class com.google.api.client.** 
    -keepclassmembers class com.google.api.client.** { 
    *; 
    } 


-keep class com.google.android.gms.** 
-keepclassmembers class com.google.android.gms.** { 
*; 
    } 
-keep class com.google.gson.** 
-keepclassmembers class com.google.gson.** { 
*; 
} 



-keep class com.google.api.client.** { *; } 
-dontwarn com.google.api.client.* 
-keep class org.apache.http.** { *; } 
-dontwarn org.apache.http.* 

-dontnote org.apache.http.** 
-dontwarn java.awt.** 
-dontwarn org.postgresql.** 

-dontwarn javax.activation.** 
-dontnote javax.activation.** 

-dontwarn myjava.awt.datatransfer.** 
-dontnote myjava.awt.datatransfer.** 


-dontwarn com.google.android.gms.** 
-keep class com.google.android.gms.** 
# The official support library. 
-keep class android.support.v4.** { *; } 
-keepclassmembers class android.support.v4.** { 
*; 
} 
-keep interface android.support.v4.** { *; } 
-keep class android.support.v7.** { *; } 


-keepclassmembers class android.support.v7.** { 
*; 
} 
-keep interface android.support.v7.** { *; } 

-keep class org.apache.http.** { *; } 
-keepclassmembers class org.apache.http.** {*;} 
-dontwarn org.apache.** 


-keep class org.codehaus.mojo.animal_sniffer.** { *; } 
-keep class java.nio.file.** { *; } 
-keep class java.lang.invoke.** { *; } 

-keepclassmembers class com.fasterxml.jackson.core.** 

-keepclassmembers class org.codehaus.mojo.animal_sniffer.** 
-keepclassmembers class java.nio.file.** 
-keepclassmembers class java.lang.invoke.** 
-enter code here`-dontwarn retrofit2.** 
-keep class retrofit2.** { *; } 
-keepclasseswithmembers class * { 
@retrofit2.http.* <methods>; 
} 

-keep class android.net.http.** { *; } 
-keepclassmembers class android.net.http.** {*;} 
-dontwarn android.net.** 

Ich bin in der Lage, die unterzeichnet apk zu erzeugen, aber wenn diese App gestartet wird, werden die App stürzt den folgenden Fehler zu werfen:

java.lang.NoSuchMethodError: No interface method i()I in class 
Landroid/content/res/XmlResourceParser; or its super classes (declaration of 
'android.content.res.XmlResourceParser' appears in 
/system/framework/framework.jar) 
                at 
android.support.v4.content.FileProvider.parsePathStrategy(Unknown Source) 
                at 
android.support.v4.content.FileProvider.getPathStrategy(Unknown Source) 
                at 
android.support.v4.content.FileProvider.attachInfo(Unknown Source) 
                at 
android.app.ActivityThread.installProvider(ActivityThread.java:6762) 
                at 
android.app.ActivityThread.installContentProviders(ActivityThread.java:6357) 

Kann jemand Bitte geben Sie an, ob ich irgendetwas in der Progaurd-Datei oder in anderen Konfigurationen verpasst habe (Im Build.Gradle habe ich minifyEnabled true und auch den Proguard-Pfad erwähnt).

+0

Ich glaube, Sie progaurd Regeln in Ihrer App-Ebene gradle Datei angewendet haben. Wenn Sie dies tun, werden alle nicht verwendeten Ressourcen und Klassen ignoriert und APK wird gemäß Ihrer Anfrage generiert. Sie stehen also vor diesem Problem. – Noorul

Antwort

4

Sie können Jar-Paket verwenden XmlPullParser-Klasse, so fügen Sie dies kann es lösen.

-keep class org.xmlpull.v1.** { *;} -dontwarn org.xmlpull.v1.**

Verwandte Themen