ProGuard破坏了我的Androidplot布局

时间:2017-02-17 14:39:15

标签: android layout proguard androidplot

我对Android开发很新,我知道决定给ProGuard一个机会。

在经历了数以千计的警告之后,我设法获得了我的应用程序的稳定版本,这完全符合它应该做的事情。

所以剩下的唯一问题就是Proguard完全破坏了我的androidplot的布局。

我真的不知道如何修复它,我也没有在网上找到类似的问题。

任何提示都值得赞赏,因为我甚至不知道应该从哪里开始搜索问题。

以下是两个截图(ProGuard之前和之后):

enter image description here enter image description here

-----更新:-----

对于可能遇到同一问题的每个人:

我仍然不知道究竟是什么导致了这个问题,但是从Androidplot v1.1.0更新到v1.4.1对我来说很有用。

2 个答案:

答案 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),可能会有不同的事情发生。有几件事需要检查:

  • 确保您的proguard配置(通常是proguard-rules.pro)位于正确的位置。 (通常是项目根目录)
  • 检查您的build.gradle以确保它包含您的proguard配置。

通常是这样的:

android {
  buildTypes {
    release {
      minifyEnabled true
      proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    }
  }
  ...
}

注意:如果您为开发构建启用了模糊处理,则还需要为开发构建配置文件添加相同的内容。