Android 启用progurd后,java.lang.NoSuchMethodError Lorg/apache/http/util/ByteArrayBuffer
我的应用程序正在崩溃,如下面的日志所示 我已经使用这些代码很长时间了,但现在它突然崩溃了 只有当我启用了progurd时,应用程序才会崩溃。如果不启用progurd,它就会工作Android 启用progurd后,java.lang.NoSuchMethodError Lorg/apache/http/util/ByteArrayBuffer,android,apache-httpclient-4.x,android-proguard,Android,Apache Httpclient 4.x,Android Proguard,我的应用程序正在崩溃,如下面的日志所示 我已经使用这些代码很长时间了,但现在它突然崩溃了 只有当我启用了progurd时,应用程序才会崩溃。如果不启用progurd,它就会工作 java.lang.NoSuchMethodError: No virtual method g([BII)V in class Lorg/apache/http/util/ByteArrayBuffer; or its super classes (declaration of 'org.apache.http.ut
java.lang.NoSuchMethodError: No virtual method g([BII)V in class Lorg/apache/http/util/ByteArrayBuffer; or its super classes (declaration of 'org.apache.http.util.ByteArrayBuffer' appears in /system/framework/org.apache.http.legacy.boot.jar)
at android_support.bee.a(AbstractMultipartForm.java:55)
at android_support.bee.<clinit>(AbstractMultipartForm.java:92)
at android_support.bem.Iu(MultipartEntityBuilder.java:192)
at android_support.bem.Iv(MultipartEntityBuilder.java:204)
at android_support.bcx.mo(BaseUploadHttpRequest.java:119)
at android_support.mp.b(HurlStack.java:245)
at android_support.mp.a(HurlStack.java:219)
at android_support.mp.a(HurlStack.java:97)
at android_support.mi.c(BasicNetwork.java:131)
at android_support.lz.processRequest(NetworkDispatcher.java:120)
at android_support.lz.run(NetworkDispatcher.java:87)
我正在使用
实现文件('libs/httpclient-osgi-4.3.jar')
和volley实现'com.android.volley:volley:1.1.0'
试试这个。Proguard应忽略外部库,因为外部库已被压缩
有时,proguard在重新压缩外部库时可能会导致错误
-keep class org.apache.** { *; }
-keep class org.apache.** { *; }
将上面添加到下面
-dontwarn org.apache.http.**
-keep class org.apache.** { *; } // add it here
请参阅:首先从更新httpclient-osgi-4.3.jar到最新版本 然后修改progurd规则以保留类,如下所示
-dontwarn org.apache.http.**
-keep class org.apache.** { *; } // add it here
-keep class org.apache.** { *; }