【问题标题】:Export apk with proguard enabled fails with message: Failed to Export启用 proguard 的导出 apk 失败并显示消息:无法导出
【发布时间】:2015-03-08 16:00:52
【问题描述】:

在启用 Proguard 的情况下尝试导出 APK 会导致错误:无法导出。

这是我的配置:

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 - 此文件中的所有内容都已注释。

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

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(Help > About - 不显示任何内容)

【问题讨论】:

    标签: android eclipse adt proguard


    【解决方案1】:

    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 %*
    

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2016-02-12
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多