我对Android开发很新,我知道决定给ProGuard一个机会。
在经历了数以千计的警告之后,我设法获得了我的应用程序的稳定版本,这完全符合它应该做的事情。
所以剩下的唯一问题就是Proguard完全破坏了我的androidplot的布局。
我真的不知道如何修复它,我也没有在网上找到类似的问题。
任何提示都值得赞赏,因为我甚至不知道应该从哪里开始搜索问题。
以下是两个截图(ProGuard之前和之后):
-----更新:-----
对于可能遇到同一问题的每个人:
我仍然不知道究竟是什么导致了这个问题,但是从Androidplot v1.1.0更新到v1.4.1对我来说很有用。
答案 0 :(得分:3)
在某些情况下,默认的ProGuard配置文件(proguard-android.txt)就足够了,ProGuard会删除所有未使用的代码。但是,ProGuard很难正确分析许多情况,它可能会删除您的应用实际需要的代码。可能错误删除代码的一些示例包括
使用proguard时,请务必检查项目中使用的所有库的文档,并在Android项目根级别的proguard-rules.pro中添加givens proguard规则。
v4的例子
-dontwarn android.support.v4.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v4.** { *; }
对于android情节试试这个:
-keep class com.androidplot.** { *; }
但是你的问题不是强制性的吗
答案 1 :(得分:1)
塞德里克的答案是正确的,但鉴于你对他的解决方案的评论,听起来好像你的自定义程序规则根本没有得到回应。
根据您的项目结构等(我假设您使用的是最近的SDK版本的gradle),可能会有不同的事情发生。有几件事需要检查:
通常是这样的:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
...
}
注意:如果您为开发构建启用了模糊处理,则还需要为开发构建配置文件添加相同的内容。