每当我尝试缩小使用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'
}
答案 0 :(得分: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"
}