如何防止ProGuard在输出jar中包含引用的库

时间:2014-04-17 16:09:32

标签: android ant proguard android-library

我正在尝试使用ProGuard来混淆我的Android Library Project源代码。

我在项目中使用了一些库,一些是libs文件夹中的jar(例如android-async-http-1.4.4.jar),另一个是引用的库项目(google-play-services_lib)。

当我在没有ProGuard的情况下构建项目时(使用ant release),只有我编码的类被打包到创建的jar中。这就是我想要的,因为将使用我的库的Android应用程序可能已经使用了我正在使用的一些相同的库。

但是当我使用ProGuard构建项目时,我使用的库包含在输出jar中。我不知道为什么,我不想要这个。我认为使用-libraryjars命令添加这些jar会阻止它们被包含在我的输出jar中,因为ProGuard文档很清楚,但它没有帮助。

  

-libraryjars class_path

     

指定要处理的应用程序的库jar(或aars,wars,ear,zips,apks或目录)。这些罐子中的文件不会包含在输出罐中。

我可能没有正确使用它。有人知道我做错了什么(或者我还没做过什么)?

-libraryjars ./libs/android-async-http-1.4.4.jar
-libraryjars ./libs/AndroidIBeaconLibrary-0.7.5.jar
-libraryjars ../google-play-services_lib/libs/google-play-services.jar

1 个答案:

答案 0 :(得分:0)

我仍然不知道为什么引用的库被包含在混淆的jar中,但是纠正与此相关的问题的简单解决方案是用winrar打开混淆的jar并删除我不想要的类。在那里......