das*_*oli 1 android deobfuscation android-proguard
我正在使用Android Studio的持续版本,我已经通过ProGuard对我的项目进行了模糊处理.Android Studio
这样的内容Build.gradle:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
但是当启动构建项目时,会出现类似 错误的错误
警告图片:见警告
我怎样才能解决这个问题?
proguard-rules.pro文件中来禁止警告-dontwarn com.github.siyamed.shapeimageview.**
警告说它无法找到引用的类org.kxml2.io.KXmlParser.KXmlParser仅在SvgToPath.java中使用,如下所示:
import org.kxml2.io.KXmlParser;
...
public class SvgToPath {
...
private static PathInfo parse(InputStream in, boolean ignoreDefs, float dpi) {
try {
XmlPullParser xr = new KXmlParser();
...
} catch (Exception e) {
Log.w(TAG, "Parse error: " + e);
throw new RuntimeException(e);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我认为这导致了它失败的两个潜在原因之一:
org.kxml2.io.KXmlParser,因此您必须自己包含它com.github.siyamed.shapeimageview或org.kxml2.io.KXmlParser混淆他们的代码.在一天结束时,您和大多数人使用的库几乎都是开源的.混淆开源代码没有任何好处,因为任何潜在的攻击者都可以在线查找源代码.
您可以通过在proguard-rules.pro文件中添加以下内容来保留类(通过Proguard阻止它们被混淆):
-keep class com.github.siyamed.shapeimageview.** { *; }
-keep interface com.github.siyamed.shapeimageview.** { *; }
-keep class org.kxml2.io.KXmlParser.** { *; }
-keep interface org.kxml2.io.KXmlParser.** { *; }
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |