基于JDK1.8,Android Proguard失败

来源:互联网 发布:淘宝店铺视觉设计 编辑:程序博客网 时间:2024/05/16 12:11

基于JDK1.8,Android Proguard失败

1、开发环境

Win10/Mac、Maven v3.2.3、AndroidSDK v23.1

2、pom.xml部分内容

 <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId>                <artifactId>android-maven-plugin</artifactId>                <version>3.8.2</version>                <configuration>                                      <!-- 使用签名时一定加上该字段,否则签名失败 -->                    <sign>                        <debug>false</debug>                    </sign>                    <sdk>                        <platform>${platform.versionCode}</platform>                    </sdk>                    <undeployBeforeDeploy>true</undeployBeforeDeploy>                                        <proguard>                        <skip>false</skip><config>${project.basedir}/proguard.txt</config>                    </proguard>                </configuration>                <extensions>true</extensions>                <inherited>true</inherited>            </plugin><plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>1.7</source>                    <target>1.7</target>                    <fork>true</fork>                    <meminitial>512m</meminitial>                    <maxmem>1048m</maxmem>                </configuration>            </plugin>

3、问题表现

执行mvn install命令,报

[INFO] java.io.IOException: Can't read [D:\Program Files\Java\jdk1.8.0_91\jre\lib\rt.jar] (Can't process class [com/oracle/net/Sdp$1.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))

这里写图片描述

4、分析问题

原本使用JDK1.7没有出这问题,是安装JDK1.8后才出错。那么就将maven-compiler-plugin的编译设置为1.7模式。问题还是没法解决。
如果屏蔽代码混淆的脚本,可以install成功。

<proguard>     <skip>false</skip>   <config>${project.basedir}/proguard.txt</config></proguard>

那么问题是proguard版本只支持到java7,而我使用的是java8.

5、解决办法

下载最新proguard(支持java 8的版本),然后将下载的文件解压。将andorid sdk/tools/proguard/lib中的jar包,替换为刚下载解压文件中的lib包。【问题解决】
proguard包的下载地址:http://proguard.sourceforge.net/

1 0
原创粉丝点击