【问题标题】:Using android Parceler library with minifyEnabled使用带有 minifyEnabled 的 android Parceler 库
【发布时间】:2015-08-26 08:35:39
【问题描述】:

每当我尝试缩小使用 parceler library 的项目时,由于来自 proguard 的大量警告,我无法构建发布 apk。例如:

警告:org.parceler.transfuse.gen.FilerResourceWriter:找不到引用的类 javax.tools.FileObject

我什至没有使用此消息中报告的大多数库。我想知道的是是否有人遇到过这个问题并设法解决它。 我尝试使用 -dontwarn 来抑制所有消息,但它似乎不正确,此外它在极少数情况下会使我的应用程序崩溃(这让我觉得某些警告消息确实是正确的,但我想要这个库自动保留所需的类)。

我的gradle脚本如下:

apply plugin: 'com.android.application'

...

dependencies {
    ...
    compile 'org.parceler:parceler:1.0.3'
}

【问题讨论】:

  • 您是否尝试将以下内容添加到您的 build.gradle 中:# Parcel library -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep class org.parceler.Parceler$$Parcels
  • 是的,它在库文档中。确实,在作者也处理了 proguard 配置之后看到这些错误让我感到惊讶。
  • FilerResourceWriter 仅在编译时注释处理期间使用...您是否在构建脚本中使用 android-apt 插件和 Parceler 处理器的 apt 范围?
  • 我没有使用它们。我必须检查,因为我什至不知道它们是什么,所以我不知道我是否可以在不知道的情况下使用它们。
  • 啊,好的... Parceler 应该是 apt 或提供范围。您能否分享您当前的构建,以便我确定这是问题所在?

标签: android parcelable parceler


【解决方案1】:

您从 Proguard 看到此错误是因为您已将 Parceler 作为运行时依赖项包含在内。 Parceler 旨在作为两个独立的库包含在您的项目中;注释处理器和 api。如果您正在运行 Gradle,您的构建脚本应如下所示:

compile "org.parceler:parceler-api:1.0.3"
apt "org.parceler:parceler:1.0.3"

Getting Parceler

apt 是android-apt plugin。其次,它也可以在提供的范围内运行。

您的构建脚本最终将如下所示:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        // replace with the current version of the Android plugin
        classpath 'com.android.tools.build:gradle:1.3.0'
        // the latest version of the android-apt plugin
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

...

dependencies {
    ...
    compile "org.parceler:parceler-api:1.0.3"
    apt "org.parceler:parceler:1.0.3"
}

【讨论】:

  • 它正在工作。我以某种方式误读了有关如何导入库的部分。谢谢。
  • 我刚才注意到你也是图书馆的作者,谢谢你的支持!
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 2017-01-26
  • 1970-01-01
  • 2021-08-04
  • 2016-08-02
  • 1970-01-01
相关资源
最近更新 更多