Android - Maven Build - Proguard - 找不到引用的类

时间:2012-06-27 08:51:46

标签: android maven maven-3 proguard android-maven-plugin

目前我正在尝试为现有的Android应用程序设置maven构建。 (之前使用Ant构建)在运行proguard混淆时,我收到很多警告,告诉我以下内容:

...
can't find referenced class org.apache.http.params.BasicHttpParams
can't find referenced class org.apache.http.params.BasicHttpParams
can't find referenced class org.apache.http.params.HttpConnectionParams
can't find referenced class org.apache.http.params.HttpConnectionParams
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.auth.AuthScope
can't find referenced class org.apache.http.auth.AuthScope
can't find referenced class org.apache.http.auth.UsernamePasswordCredentials
...

缺少的引用来自 org.apache.http 包。我认为它们应该包含在android.jar中。我使用 android-maven-plugin 版本 3.2.0 。在pom.xml中定义了以下android依赖项。

<dependency>
 <groupId>android</groupId>
 <artifactId>android</artifactId>
 <version>4.0.3_r3</version>
 <scope>provided</scope>
</dependency>

我已经使用 maven-android-sdk-deployer 安装了Android依赖项。

这种错误的正确解决方案是什么?没有混淆,构建成功,结果APK工作得非常好。我没有更改proguard配置文件。 (它与蚂蚁一起工作)

1 个答案:

答案 0 :(得分:1)

当我试图混淆实现com.sun.mail包的应用程序时,我曾经遇到过与Proguard混淆相同的问题。我收到几个警告,说Proguard在这个库(包)中找不到引用类。

作为解决方案,我只是通过以下行压抑了警告: -dontwarn com.sun.**。一切顺利,com.mail.sun库的所有类和功能都像部署应用程序中的魅力一样工作,而Proguard不再抱怨它了;)

因此,在您的情况下,您需要添加以下行: -dontwarn org.apache.**