Gradle ver:3.4.1
JDK ver:1.8
Proguard ver:5.3.3
Android gradle插件2.3.
由于proguard,我在构建中遇到异常.我也试过了proguard 5.3.2但没有成功.
JDK ver:1.8
Proguard ver:5.3.3
Android gradle插件2.3.
由于proguard,我在构建中遇到异常.我也试过了proguard 5.3.2但没有成功.
这是我的发布配置
- release {
- debuggable false
- android.buildTypes.release.proguardFiles = []
- proguardFile 'proguard-android.txt'
- //minifyEnabled
- shrinkResources true
- signingConfig = signingConfigs.release
- }
以下是这个例子
- Caused by: java.lang.IllegalArgumentException: Overflow of unsigned short value [95001]
- at proguard.classfile.io.RuntimeDataOutput.writeUnsignedShort(RuntimeDataOutput.java:213)
- at proguard.classfile.io.ProgramClassWriter$AttributeBodyWriter.visitLineNumberInfo(ProgramClassWriter.java:565)
- at proguard.classfile.attribute.LineNumberTableAttribute.lineNumbersAccept(LineNumberTableAttribute.java:171)
PS:我可以用android gradle插件2.2构建.我认为这是使用较低版本的proguard.
解决方法
本期(
PGD-681)已于
Proguard v6.0修订.
但是,Gradle v3.1.0的Android插件仍在使用Proguard v5.3.3.您可以检查它是否正在运行./gradlew buildEnvironment:
- classpath
- +--- com.android.tools.build:gradle:3.1.0
- | \--- com.android.tools.build:gradle-core:3.1.0
- ...
- | +--- net.sf.proguard:proguard-gradle:5.3.3
- | | \--- net.sf.proguard:proguard-base:5.3.3
因此,您必须手动包含最新版本的Proguard:
- classpath('com.android.tools.build:gradle:3.1.2') {
- exclude module: 'proguard-gradle'
- }
- classpath('net.sf.proguard:proguard-gradle:6.0.3') {
- force = true
- }