【问题标题】:Proguard [ java.lang.IllegalArgumentException: Overflow of unsigned short value ]Proguard [java.lang.IllegalArgumentException:无符号短值溢出]
【发布时间】:2018-06-01 05:24:42
【问题描述】:

Gradle 版本:3.4.1
JDK 版本:1.8
Proguard 版本: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:我可以使用我认为使用较低版本的 proguard 的 android gradle 插件 2.2.+ 构建。

【问题讨论】:

    标签: android proguard


    【解决方案1】:

    此问题 (PGD-681) 已在 Proguard v6.0 中修复。

    但是,Android Plugin for 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.2') {
        exclude module: 'proguard-gradle'
    }
    classpath('net.sf.proguard:proguard-gradle:6.0.3') {
        force = true
    }
    

    【讨论】:

      【解决方案2】:

      手动将 proguard 版本设置为 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
      }
      

      Reference

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-29
        • 2016-05-22
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多