在android上启用proguard失败

时间:2014-11-14 10:57:14

标签: java android encryption apk proguard

我正在尝试使用proguard保护我的apk文件,以防止黑客轻松反编译我的代码。我已经在线阅读了很多关于如何做到这一点的教程,但是当我按照网上的建议时,我的应用程序就会崩溃。我所遵循的教程是:

Enabling ProGuard in Eclipse for Android

http://proguard.sourceforge.net/manual/examples.html#androidapplication

http://dominoc925.blogspot.com/2013/12/how-to-obfuscate-android-apk-file-using.html

源目录中的project.properties文件如下所示:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties:     sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-18
android.library.reference.1=..\\appcompat_v7
android.library.reference.2=../../adt-bundle-windows-x86_64-20140702/sdk/extras/google    /google_play_services/libproject/google-play-services_lib

当我尝试导出已签名的apk时,控制台中会显示以下错误:

[2014-11-14 12:41:18 - SMART calculator] Proguard returned with error code 1. See console
[2014-11-14 12:41:18 - SMART calculator] proguard.ParseException: Unknown option '(' in argument number 14
[2014-11-14 12:41:18 - SMART calculator]    at proguard.ConfigurationParser.parse(ConfigurationParser.java:191)
[2014-11-14 12:41:18 - SMART calculator]    at proguard.ProGuard.main(ProGuard.java:484)
[2014-11-14 12:41:29 - SMART calculator] Proguard returned with error code 1. See console

第14行是该行     目标=机器人-18 在project.properties文件中。

有人可以帮我修复我得到的这个错误。 :)d

2 个答案:

答案 0 :(得分:0)

proguard.config=proguard-project.txt

使用此代替

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

答案 1 :(得分:0)

我找到了一个快速解决方法。取消评论该行

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
project.properties文件中的

;清理你的项目;编译并运行/加载项目大约10次到您的测试设备上。过了一会儿,一个名为Proguard的文件夹将出现在你的主目录中,里面会有4个文本文件。不要对这个文件夹发脾气。当您现在想要导出apk时,请注释以上行&您的apk将被导出,而不会遇到任何错误。我试图反编译我导出的apk但代码似乎被Proguard阻塞,很难逆向工程。

这是一个非常奇怪的解决方案,但它适用于我的项目。