3

编辑 4: 我试过取出 Action Bar Sherlock,Proguard 没问题。所以我猜这是android-support-v4.jar的问题。

我在包含 ABS 库时尝试过这个,但它没有用..

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepattributes *Annotation*

最后,奇怪的是我在没有ABS 库和 proguard-android.txt的情况下进行了尝试,但它也能正常工作。

我不知道问题是什么。


我已经阅读了大量关于此的 Q/A 并尝试了许多解决方案,但没有一个成功。

我试过做:

-injars libs/**

和:

-libraryjars  libs/**

以及其他不起作用的事情......你能给我你对我应该做什么的意见吗?

我正在使用 4 个外部罐子:

  • apache-mime4j-0.6.jar
  • httpclient-4.2.2.jar
  • httpcore-4.2.2.jar
  • httpmime-4.2.2.jar

这是我尝试导出签名的 apk 时的错误控制台:

    [2013-10-15 18:36:12 - ExampleProGuard] Proguard returned with error code 1. See console
[2013-10-15 18:36:12 - ExampleProGuard] Note: there were 364 duplicate class definitions.
[2013-10-15 18:36:12 - ExampleProGuard] Warning: library class android.net.http.AndroidHttpClient extends or implements program class org.apache.http.client.HttpClient
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAddCookies: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAddCookies: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAuthCache: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAuthCache: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAuthenticationBase: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestAuthenticationBase: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestClientConnControl: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.RequestClientConnControl: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.ResponseAuthCache: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.ResponseAuthCache: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.ResponseProcessCookies: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.client.protocol.ResponseProcessCookies: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.BasicScheme: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.BasicScheme: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSName
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSName
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSContext
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSContext
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSContext
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSName
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSContext
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSManager
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSName
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSContext
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.GGSSchemeBase: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.KerberosScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.KerberosScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.KerberosScheme: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NTLMEngineImpl$NTLMMessage: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NTLMEngineImpl$NTLMMessage: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NTLMEngineImpl$NTLMMessage: can't find referenced class org.apache.commons.codec.binary.Base64
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.NegotiateScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.SPNegoScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.SPNegoScheme: can't find referenced class org.ietf.jgss.Oid
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.auth.SPNegoScheme: can't find referenced class org.ietf.jgss.GSSException
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AbstractAuthenticationHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AbstractAuthenticationHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AbstractHttpClient: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AbstractHttpClient: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AuthenticationStrategyAdaptor: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AuthenticationStrategyAdaptor: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AuthenticationStrategyImpl: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AuthenticationStrategyImpl: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AutoRetryHttpClient: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.AutoRetryHttpClient: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRedirectHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRedirectHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRedirectStrategy: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRedirectStrategy: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRequestDirector: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.DefaultRequestDirector: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.HttpAuthenticator: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.client.HttpAuthenticator: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.BasicClientConnectionManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.BasicClientConnectionManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultClientConnection: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultClientConnection: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultClientConnection: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultClientConnectionOperator: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultClientConnectionOperator: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultHttpResponseParser: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultHttpResponseParser: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultResponseParser: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.DefaultResponseParser: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.IdleConnectionHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.IdleConnectionHandler: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.InMemoryDnsResolver: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.InMemoryDnsResolver: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.PoolingClientConnectionManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.PoolingClientConnectionManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.SingleClientConnManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.SingleClientConnManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.AbstractConnPool: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.AbstractConnPool: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.ConnPoolByRoute: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.ConnPoolByRoute: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.RouteSpecificPool: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.RouteSpecificPool: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.Base64InputStream: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.Base64InputStream: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.DecoderUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.DecoderUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.QuotedPrintableInputStream: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.codec.QuotedPrintableInputStream: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.descriptor.DefaultBodyDescriptor: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.descriptor.DefaultBodyDescriptor: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.AddressListField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.AddressListField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.ContentDispositionField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.ContentDispositionField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.ContentTypeField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.ContentTypeField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.DateTimeField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.DateTimeField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.MailboxField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.MailboxField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.MailboxListField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.field.MailboxListField: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.message.BodyFactory: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.message.BodyFactory: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.parser.AbstractEntity: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.parser.AbstractEntity: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.storage.DefaultStorageProvider: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.storage.DefaultStorageProvider: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.util.CharsetUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.util.CharsetUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.util.MimeUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard] Warning: org.apache.james.mime4j.util.MimeUtil: can't find referenced class org.apache.commons.logging.LogFactory
[2013-10-15 18:36:12 - ExampleProGuard]       You should check if you need to specify additional program jars.
[2013-10-15 18:36:12 - ExampleProGuard] Warning: there were 134 unresolved references to classes or interfaces.
[2013-10-15 18:36:12 - ExampleProGuard]          You may need to specify additional library jars (using '-libraryjars').
[2013-10-15 18:36:12 - ExampleProGuard] Warning: there were 1 instances of library classes depending on program classes.
[2013-10-15 18:36:12 - ExampleProGuard]          You must avoid such dependencies, since the program classes will
[2013-10-15 18:36:12 - ExampleProGuard]          be processed, while the library classes will remain unchanged.
[2013-10-15 18:36:12 - ExampleProGuard] java.io.IOException: Please correct the above warnings first.
[2013-10-15 18:36:12 - ExampleProGuard]     at proguard.Initializer.execute(Initializer.java:321)
[2013-10-15 18:36:12 - ExampleProGuard]     at proguard.ProGuard.initialize(ProGuard.java:211)
[2013-10-15 18:36:12 - ExampleProGuard]     at proguard.ProGuard.execute(ProGuard.java:86)
[2013-10-15 18:36:12 - ExampleProGuard]     at proguard.ProGuard.main(ProGuard.java:492)

编辑

首先,感谢 Eric 的回答。

我试过了:

 -dotwarn org.apache.common.**

 -dontwarn org.**

但它显示了完全相同的控制台错误。

我看到了这个线程,所以我尝试添加一个带有 sdk 路径的新类路径变量,但它显示了相同的控制台错误。

这是我的 project.properties 文件,它也引用了 Action Bar Sherlock

    # 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-15
android.library=false
android.library.reference.1=../JakeWharton-ActionBarSherlock-5b15c92/actionbarsherlock

编辑2:

正如它在 Action Sherlock Bar网站上所说的那样,我也尝试了这个,而没有改变所有的错误控制台:

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepattributes *Annotation*

编辑 3:

我尝试从项目中删除外部 jars(不是 ABS,它是一个库),但它仍然显示完全相同的错误。我不明白它是从哪里来的。

4

2 回答 2

7

org.apache.commons.logging.LogFactory您的库中缺少某些类。显然,您的应用程序无论如何都不会使用它们,因此您可以告诉 ProGuard 没关系。例如:

-dontwarn org.apache.commons.**

请参阅 ProGuard 手册 > 故障排除 >警告:找不到引用的类

org.apache.http.**Android 运行时中已经存在其他类,例如。你不应该在你的应用程序库中复制它们,因为 Android 运行时中的版本无论如何都会获得优先权。

请参阅 ProGuard 手册 > 疑难解答 >警告:库类 ... 取决于程序类 ...

最后,您不应在配置文件中指定-injars-libraryjars选项。Ant/Eclipse/Gradle 构建过程已经根据您的项目内容自动为您指定了所有必要-injars-outjars、 和。-libraryjars

请参阅 ProGuard 手册 > 故障排除 >注意:程序/库类的重复定义

于 2013-10-16T11:02:00.833 回答
0

我已经在这里回答过这个问题,我也把它放在这里,以便它可以帮助某人。

我遇到了同样的问题,并在某处阅读了解决此问题的方法,即禁用 minifyEnabled,生成签名的 APK。

buildTypes {
    release {
        minifyEnabled false
        shrinkResources true
        proguardFiles 'proguard-project.txt'
    }

在将 buildTool 更新到 23.0 之前,我从未遇到过这个问题。

此外,对于这个较新的版本,您需要将其添加到您的 Progaurd.txt 文件中。

-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**

希望这也有助于解决您的问题。

于 2015-10-14T17:53:03.133 回答