我正在使用Android Studio的持续版本,我在Android Studio
中通过 ProGuard 模糊我的项目。
Build.gradle
的内容,例如:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
但是在启动构建项目时,就是这样的错误 see error
警告图片:see warning
我该如何解决这个问题?
答案 0 :(得分:7)
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);
}
}
...
}
我认为这导致其失败原因的两个潜在原因之一:
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.** { *; }