2014-10-17 82 views
1

如果我禁用了proguard,我的应用程序在发布模式下正确运行。但是,只要我启用了proguard,它就会崩溃。我已经相应地更改了proguard-project.txt。ProGuard,解析异常,NoSuchMethodError:android.net.SSLCertificateSocketFactory.getHttpSocketFactory

这是我得到的日志:

> 10-17 08:31:42.705: E/AndroidRuntime(20674): FATAL EXCEPTION: Thread-2016 
10-17 08:31:42.705: E/AndroidRuntime(20674): java.lang.ExceptionInInitializerError 
10-17 08:31:42.705: E/AndroidRuntime(20674): at com.parse.Parse.initialize(Unknown Source) 
10-17 08:31:42.705: E/AndroidRuntime(20674): at com.myapp.android.view.l.run(Unknown Source) 
10-17 08:31:42.705: E/AndroidRuntime(20674): at java.lang.Thread.run(Thread.java:864) 
10-17 08:31:42.705: E/AndroidRuntime(20674): Caused by: java.lang.NoSuchMethodError: android.net.SSLCertificateSocketFactory.getHttpSocketFactory 
10-17 08:31:42.705: E/AndroidRuntime(20674): at com.parse.ParseRequest.newHttpClient(Unknown Source) 
10-17 08:31:42.705: E/AndroidRuntime(20674): at com.parse.ParseRequest.<clinit>(Unknown Source) 
10-17 08:31:42.705: E/AndroidRuntime(20674): ... 3 more 

这里是我的配置在proguard的-project.txt

-keep class com.parse.**{ *; } 
-dontwarn com.parse.** 
-keep public class android.net.**{ *; } 
-dontwarn android.net.** 

回答

1

我添加了两行,并解决了。

-dontwarn org.apache.http.** 
-keep class org.apache.http.** { *; }