【问题标题】:ProGuard java.lang.NoSuchMethodExceptionProGuard java.lang.NoSuchMethodException
【发布时间】:2015-02-25 14:04:30
【问题描述】:

打开 ProGuard 后,我无法连接到 IMAPSSLStore。这是来自 logcat 窗口的一些内容:

A0 OK 这就是她写的全部内容! i1mb111841581wil
IMAP 调试:身份验证:XOAUTH
IMAP 调试:身份验证:XOAUTH2
IMAP 调试:身份验证:普通
IMAP 调试:身份验证:PLAIN-CLIENTTOKEN
调试:protocolConnect 登录,host=imap.gmail.com,user=user***@gmail.com,password=
IMAP 调试:无法加载 SASL 身份验证器:java.lang.NoSuchMethodException: [class com.bbbai,class java.lang.String,class java.util.Properties,boolean,class java.io。 PrintStream, 类 java.lang.String]
A1 AUTHENTICATE PLAIN +
A1 NO [ALERT] 无效凭据(失败)
a.b.b:[ALERT] 无效凭据(失败)

我的提供者类:

 public static final class OAuth2Provider extends java.security.Provider {
    private static final long serialVersionUID = 1L;

    public OAuth2Provider() {
        super("Google OAuth2 Provider", 1.0,
                "Provides the XOAUTH2 SASL Mechanism");
        try {
           put("SaslClientFactory.XOAUTH2", "com.company.app.OAuth2SaslClientFactory");
        }
        catch (Exception e)
        {
           System.out.println("OAUTH2Provider error.");
        }


    }
}

在 proguard-project.txt 我试过了(HelperClass 是我连接到商店的类):

-keep class com.company.app.HelperClass.**
-keep class javax.security.sasl.** { *; }
-keep class com.sun.mail.imap.IMAPSSLStore.**
-keep class java.security.** { *; }

没有任何作用....

请帮忙:)

附言抱歉,不知道如何更好地格式化堆栈跟踪

【问题讨论】:

标签: android authentication jakarta-mail proguard obfuscation


【解决方案1】:

OAuth2SaslClientFactory 是我从这里得到的一个类:https://code.google.com/p/google-mail-oauth2-tools/source/browse/trunk/java/com/google/code/samples/oauth2/OAuth2SaslClientFactory.java?r=3

我必须包含 ProGuard 行

-keep class com.company.app.OAuth2SaslClientFactory

等等。

【讨论】:

  • 对,如果您使用的是较新版本的 JavaMail,则根本不需要编写该类。
猜你喜欢
  • 1970-01-01
  • 2013-03-12
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 2020-10-21
  • 2017-03-26
  • 1970-01-01
相关资源
最近更新 更多