本文介绍了忽略了Android ProGuard的外部库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用Proguard的主要表现为混淆的原因。
我有ProGuard的Android中的一个问题。我用simpleframework解析XML;其外部。
在ProGuard的CFG:
-keepattributes *注释*,EnclosingMethod
-keep公共类org.simpleframework ** {*。 }
-keep公共类org.simpleframework.xml ** {*。 }
-keep公共类org.simpleframework.xml.core ** {*。 }
-keep公共类org.simpleframework.xml.util ** {*。 }
-keep公共类org.simpleframework.xml.stream ** {*。 }
-keep公共类的javax ** {*。 }
-keep公共类javax.xml.stream中** {*。 }
-keep公共类org.simpleframework。** {
公共无效套*(***);
公开***得到*();
}
错误:
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLInputFactory
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLInputFactory
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLInputFactory
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLInputFactory
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLInputFactory
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamProvider:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.XMLEventReader
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $项:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.Location
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.StartElement
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.StartElement
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.Location
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.StartElement
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.StartElement
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.Location
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $开始:找不到引用的类javax.xml.stream.events.Attribute
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.Characters
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.Characters
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.Characters
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.XMLEvent
警告:org.simpleframework.xml.stream.StreamReader $文字:找不到引用的类javax.xml.stream.events.XMLEvent
我不知道如何解决这个问题。路径摇篮CFG就可以了。
在摇篮:
buildTypes {
推出 {
runProguard真
proguardFile文件(proguard.txt)
signingConfig signingConfigs.release
}
}
解决方案
这ProGuard的配置帮我:Proguard模糊处理是打破了SimpleXML
#下面这行可能会有所不同
-libraryjars< java.home> /lib/rt.jar(Java / **,使用javax / **)
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dont preverify
-verbose
#(3)不删除未使用的code
-dontshrink
-optimizations!code /简/算术,!现场/ * ,!类/合并/ *
-keep公共类*扩展android.app.Activity
-keep公共类*扩展android.app.Application
-keep公共类*扩展android.app.Service
-keep公共类*扩展android.content.BroadcastReceiver
-keep公共类*扩展android.content.ContentProvider
-keep公共类*扩展android.app.backup.BackupAgentHelper
-keep公共类*扩展的Android。preference。preference
-keep公共类com.android.vending.licensing.ILicensingService
#(2)简单的XML
-keep公共类org.simpleframework ** {*。 }
-keep类org.simpleframework.xml ** {*。 }
-keep类org.simpleframework.xml.core ** {*。 }
-keep类org.simpleframework.xml.util ** {*。 }
#(1)批注和签名
-keepattributes *注释*
-keepattributes签名
-keepclasseswithmembernames类* {
天然的LT;方法&gt ;;
}
-keepclasseswithmembers类* {
公共和LT; INIT>(android.content.Context,android.util.AttributeSet);
}
-keepclasseswithmembers类* {
公共和LT; INIT>(android.content.Context,android.util.AttributeSet,INT);
}
-keepclassmembers类*扩展android.app.Activity {
公共无效*(android.view.View);
}
-keepclassmembers枚举* {
公共静态** []值();
公共静态**的valueOf(java.lang.String中);
}
-keep类*实现android.os.Parcelable {
公共静态最终android.os.Parcelable $造物主*;
}
I want to use Proguard mainly for obfuscation reasons.
I have a problem with proguard in Android. I used simpleframework to parse XML; its external.
In proguard cfg:
-keepattributes *Annotation*,EnclosingMethod
-keep public class org.simpleframework.**{ *; }
-keep public class org.simpleframework.xml.**{ *; }
-keep public class org.simpleframework.xml.core.**{ *; }
-keep public class org.simpleframework.xml.util.**{ *; }
-keep public class org.simpleframework.xml.stream.**{ *; }
-keep public class javax.** { *; }
-keep public class javax.xml.stream.**{ *; }
-keep public class org.simpleframework.** {
public void set*(***);
public *** get*();
}
error:
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLInputFactory
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLInputFactory
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLInputFactory
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLInputFactory
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLInputFactory
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamProvider: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.XMLEventReader
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Entry: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.Location
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.StartElement
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.StartElement
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.Location
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.StartElement
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.StartElement
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.Location
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Start: can't find referenced class javax.xml.stream.events.Attribute
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.Characters
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.Characters
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.Characters
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.XMLEvent
Warning: org.simpleframework.xml.stream.StreamReader$Text: can't find referenced class javax.xml.stream.events.XMLEvent
I have no idea how to fix this problem. Path to gradle cfg is OK.
in gradle:
buildTypes {
release {
runProguard true
proguardFile file('proguard.txt')
signingConfig signingConfigs.release
}
}
解决方案
This proguard configuration help me: Proguard obfuscation is breaking simplexml
# The following line may be different
-libraryjars <java.home>/lib/rt.jar(java/**,javax/**)
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
# (3)Not remove unused code
-dontshrink
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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
# (2)Simple XML
-keep public class org.simpleframework.**{ *; }
-keep class org.simpleframework.xml.**{ *; }
-keep class org.simpleframework.xml.core.**{ *; }
-keep class org.simpleframework.xml.util.**{ *; }
# (1)Annotations and signatures
-keepattributes *Annotation*
-keepattributes Signature
-keepclasseswithmembernames class * {
native <methods>;
}
-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.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
这篇关于忽略了Android ProGuard的外部库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!