Proguard [java.lang.IllegalArgumentException: unsigned short value overflow]

Gradle ver: 3.4.1
JDK ver: 1.8
Proguard ver: 5.3.3
Android gradle plugin 2.3. +
Due to proguard, I get an exception from the assembly. I also tried proguard 5.3.2, but without success.

Here is my version of the configuration

release {
        debuggable false
        android.buildTypes.release.proguardFiles = []
        proguardFile 'proguard-android.txt'
        //minifyEnabled
        shrinkResources true
        signingConfig = signingConfigs.release
    }

The following is a summary

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: I can build using the android gradle plugin 2.2. + which I think uses a lower version of proguard.

+4
source share
2 answers

Manually install proguard version for version 5.2.1

classpath('com.android.tools.build:gradle:2.3.0') {
    exclude module: 'proguard-gradle'
}
classpath('net.sf.proguard:proguard-gradle:5.2.1') {
    force = true
}

Link

+3
source

This issue ( PGD-681 ) has been fixed in Proguard v6.0 .

, Android Plugin Gradle v3.1.0 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.0') {
    exclude module: 'proguard-gradle'
}
classpath('net.sf.proguard:proguard-gradle:6.0.1') {
    force = true
}
+1

Source: https://habr.com/ru/post/1685609/


All Articles