带有proguard的导出apk失败,显示消息:导出失败

时间:2015-01-10 11:25:34

标签: android eclipse adt proguard

尝试导出APK,启用Proguard会导致错误:导出失败。

以下是我的配置:

project.properties

proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:${sdk.dir}/tools/proguard/proguard-project.txt

# Project target.
target=android-19
android.library.reference.1=../android-support-v7-appcompat

proguard-android-optimize.txt - 这里的一切都是默认的 proguard-project.txt - 此文件中的所有内容都已注释。

在日食日志中我看到了这些:

Caused by: java.lang.NullPointerException
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.createWindowsProguardConfig(BuildHelper.java:652)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.runProguard(BuildHelper.java:571)
    at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:259)

想知道为什么NullPointer - 我错过了任何配置吗?
Eclipse ADT版本可能是23(帮助>关于 - 没有显示任何内容)

1 个答案:

答案 0 :(得分:0)

sdk \ tools \ proguard \ bin包含proguard.sh文件,而不是proguard.bat文件 - 这是导出过程正在寻找的东西(Windows 7笔记本电脑上的Eclipse ADT)。
不知道为什么.bat文件默认不存在。

因此,将proguard.bat置于帮助状态,并启用proguard导出开始工作 这就是progaurd.bat在你没有的时候的样子:

@ECHO OFF

REM Start-up script for ProGuard -- free class file shrinker, optimizer,
REM obfuscator, and preverifier for Java bytecode.
REM
REM Note: when passing file names containing spaces to this script,
REM       you'll have to add escaped quotes around them, e.g.
REM       "\"C:/My Directory/My File.txt\""

IF EXIST "%PROGUARD_HOME%" GOTO home
SET PROGUARD_HOME=..
:home

java -jar "%PROGUARD_HOME%"\lib\proguard.jar %*