使用 android 带有 minifyEnabled 的 Parceler 库
Using android Parceler library with minifyEnabled
每当我尝试缩小使用 parceler library 的项目时,由于来自混淆器的大量警告,我无法构建发布 apk。例如:
Warning:org.parceler.transfuse.gen.FilerResourceWriter: can't find referenced class javax.tools.FileObject
我什至没有使用此消息中报告的大部分库。我想知道是否有人遇到过这个问题并设法解决了。
我尝试使用 -dontwarn 来抑制所有消息,但它似乎不正确,而且在极少数情况下它会使我的应用程序崩溃(这让我觉得一些警告消息确实是正确的,但我想要图书馆自动保留所需的 类)。
我的gradle脚本如下:
apply plugin: 'com.android.application'
...
dependencies {
...
compile 'org.parceler:parceler:1.0.3'
}
您从 Proguard 看到此错误是因为您将 Parceler 作为 运行 时间依赖项包含在内。 Parceler 被设计为作为两个独立的库包含在您的项目中;注释处理器和 api。如果您 运行ning Gradle 您的构建脚本应该如下所示:
compile "org.parceler:parceler-api:1.0.3"
apt "org.parceler:parceler:1.0.3"
其中 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"
}
每当我尝试缩小使用 parceler library 的项目时,由于来自混淆器的大量警告,我无法构建发布 apk。例如:
Warning:org.parceler.transfuse.gen.FilerResourceWriter: can't find referenced class javax.tools.FileObject
我什至没有使用此消息中报告的大部分库。我想知道是否有人遇到过这个问题并设法解决了。 我尝试使用 -dontwarn 来抑制所有消息,但它似乎不正确,而且在极少数情况下它会使我的应用程序崩溃(这让我觉得一些警告消息确实是正确的,但我想要图书馆自动保留所需的 类)。
我的gradle脚本如下:
apply plugin: 'com.android.application'
...
dependencies {
...
compile 'org.parceler:parceler:1.0.3'
}
您从 Proguard 看到此错误是因为您将 Parceler 作为 运行 时间依赖项包含在内。 Parceler 被设计为作为两个独立的库包含在您的项目中;注释处理器和 api。如果您 运行ning Gradle 您的构建脚本应该如下所示:
compile "org.parceler:parceler-api:1.0.3"
apt "org.parceler:parceler:1.0.3"
其中 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"
}