【发布时间】:2011-01-24 19:50:51
【问题描述】:
所以,我正在尝试让 ADT 的内置 proguard 实现适用于我的应用程序。不幸的是,它似乎对我引用的第三方库中的各种类感到窒息。 我已经尝试了各种(如果不是全部)我能想到的 -libraryjars 和 -keep 公共类行的组合,但这一切都不好。我对 Proguard 没有那么丰富的经验,所以老实说,我不知道我哪里出错了。我试过 google,但大部分信息都与 Ant 脚本有关。
我尝试过的一些事情:
文件顶部或底部的 -libraryjars C:\Users\Dave\workspace\Dropbox_Sync_for_Tasker_and_Locale\lib\apache-mime4j-0.6.jar 行
试图相对地创建通往 jar 的路径的行,但根本没有成功。
像 -keep public class org.apache.commons.logging.LogFactory 这样的行
引用错误行其他部分的行,如 -keep public class org.apache.james.mime4j.field.MailboxListField
不管怎样,错误日志是一堵巨大的文字墙,所以我把它放在了一个pastebin here。
【问题讨论】:
-
看起来您可能遇到了 Android 所做的平台假设之一。您可能希望将库 jar 放入 Android 项目根目录中的 libs/ 中。似乎 android 假设外部 jar 库将位于此目录中。
-
库位于该文件夹中。我尝试通过相对路径引用它们,并不断从 Proguard 获取 IOExceptions。编辑:我刚刚注意到我使用的是 lib 文件夹,而不是 libs。当我回到我的电脑前,我会看看是不是这个问题......
-
所以,是的,这样做曾经奏效。然后,我做了一个小改动并重新构建,它停止工作。我不知道现在该怎么办。
-
将它们放在“libs”中并使用相对路径效果很好(对我来说)
标签: android eclipse adt proguard